Я делаю небольшое приложение для создания прототипа. Я начал с использования стартерапа под названием basejumper
После быстрого старта я наткнулся на очень досадную проблему. В режиме разработки rails вылетает после второго запроса, т.е. при первой загрузке страницы все работает нормально, перезагрузка страниц вылетает с
"You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.include?"
Эта проблема возникает при попытке получить доступ к объекту пользователя через ассоциативную принадлежность. В представлении я делаю что-то вроде этого, это comment.user.login, который разрушает представление:
<% @article.comment_threads.each do |comment| %>
<div class="comment">
<%=h comment.body %> | Posted <%=time_ago_in_words(comment.created_at)%>ago
by <%= comment.user.login %>.</div>
<% end%>
Мои занятия:
class User < ActiveRecord::Base
acts_as_authentic
has_many :articles
has_many :comments
class Comment < ActiveRecord::Base
acts_as_nested_set :scope => [:commentable_id, :commentable_type]
belongs_to :user
class Article < ActiveRecord::Base
belongs_to :user
belongs_to :innovation_target
acts_as_commentable
Когда в моем конфигурационном файле development.rb я ставлю
config.cache_classes = false
проблема исчезает, но оставляет меня с сервером, который мне нужно перезапускать после каждого изменения, что в принципе не работает. Я использую рельсы 2.3.4.
Итак, мой вопрос, могу ли я как-то заставить rails перезагрузить некоторые / все гемы и плагины в режиме разработки, чтобы эта проблема исчезла? Или вы видите другие возможности? Я использую много различных плагинов и драгоценных камней, включая, например, activ_as_commentable_with_threading, awesome_nested_set и другие.
Спасибо за вашу помощь.
пс. Я уже просматривал статьи типа http://www.williambharding.com/blog/rails/automatically-reload-modules-on-change-in-rails/ и http://nhw.pl/wp/2009/01/07/reloading-your-plugin-in-development-mode, но они не кажутся обманом (или я делаю что-то не так.)