Помощь по Rails Tutorial
Добро пожаловать на страницу помощи Rails Tutorial. Мне свойственно пытаться помочь всем, кто обращается ко мне, и это прекрасно работало на первых порах, когда у книги было всего несколько сотен читателей, но, к (не)счастью, у Rails Tutorial сейчас столь широкий круг читателей, что моих ресурсов попросту недостаточно для оказания индивидуальной помощи.* Я до сих пор с благодарностью принимаю сообщения об ошибках в тексте (включая опечатки!),† но к настоящему времени исходный код примеров учебника уже тщательно отлажен тысячами читателей, так что не стоит писать о проблемах с примерами приложений на страницу отзывов о Rails Tutorial‡ или направлять эти сообщения на мой email. Вместо этого я советую сравнить ваш код с "официальным" кодом примера приложения, возможно это поможет обнаружить источник проблемы. Если же это не помогло, пожалуйста, задайте свой вопрос на Stack Overflow, используя теги ruby-on-rails и tutorials. (Кликните здесь чтобы посмотреть вопросы помеченные этими двумя тегами.)
Советы по отладке
Предусмотреть все потенциальные проблемы, конечно же, невозможно, однако вот несколько советов по отладке которые могут вам помочь:
- Вы используете в точности те же версии гемов (включая Rails), что и в учебнике?
- Вы используете правильную версию Ruby с правильным гемсетом?
- Вы перезапустили веб сервер?
- Вы перезапустили Spork?
- Вы перезапустили bundle install?
- Вы пытались выполнить rake db:test:prepare?
- Вы сравнили ваш код с соответствующим кодом на GitHub?
Если же ваша проблема имеет более глобальный характер, например, сложности с установкой Rails или конфигурацией RSpec, я советую написать об этом на Stack Overflow (опять же, используя теги ruby-on-rails и tutorials) или отправить сообщение в гугл группу Ruby on Rails Talk. Это позволит другим людям, столкнувшимся с аналогичными сложностями (и не только читающим Rails Tutorial) получить пользу от обсуждения. Вы также можете попробовать задать вопрос на Rails IRC канале (#rubyonrails) или на Rails Hotline чтобы получить онлайн поддержку от других Rails программистов. Если у вас возникли сложности связанные с RVM, вы обычно можете найти его создателя, Wayne E. Seguin, на RVM IRC канале. Для решения проблем с деплоем приложения на Heroku, пожалуйста, обращайтесь в тех. поддержку Heroku.
Задавая свой вопрос в любой группе или форуме, постарайтесь включить в него как можно больше значимой информации. Иногда бывает сложно удержаться от искушения задать вопрос в духе "Я пытался установить RSpec, но он не работает. Может мне кто-нибудь сказать в чем проблема?" К сожалению, исходя из этого описания, совершенно невозможно определить в чем проблема. На некоторых форумах, вам могут даже нагрубить в ответ на такой вопрос, поскольку помимо того, что для решения проблемы недостаточно информации, к тому же нет никаких оснований полагать, что автор вопроса предпринимал хоть какие-то попытки решить его самостоятельно. Если вы хотите побольше узнать об общепринятых принципах задавания вопросов на форумах, включая способы увеличить шансы на полезный ответ, я очень рекомендую статью Как правильно задавать вопросы (автор - Eric Raymond).
*Я рассматривал идею создание форума Rails Tutorial, но практика показала, что создание, поддержка и модерация такого форума это почти так же затратно по времени как и индивидуальная тех. поддержка. (Вот для чего существует Stack Overflow.)
†Об ошибках в учебнике можно сообщать по email, но, пожалуйста, трижды проверьте, прежде чем писать мне; на данный момент огромное количество отправляемых ошибок не связаны с текстом учебника. (Примечание: я более не отслеживаю страницу Rails Tutorial Get Satisfaction, которая ранее использовалась для сообщения об ошибках, но некоторые члены сообщества по-прежнему отвечают на задаваемые там вопросы.)
‡Из-за того что системы читателей очень сильно отличаются и из-за того, что экосистема Rails очень быстро меняется, совершенно нецелесообразно пытаться описать даже небольшую часть вещей которые могут пойти не так (хотя я, конечно же, пытался). Жизнь Rails-разработчика и программиста вообще, заключается в постоянном преодолении проблем с помощью своей силы воли (и Google-fu). Кроме того, вы будете удивлены, как часто люди клянутся, что они скопировали код в точности так, как он представлен в учебнике, только для того чтобы признаться в итоге, после полдюжины отправленных email, что они нашли опечатку в коде.