2010-07-30 2 views
0

Я переместился некоторые файлы в подпапки внутри моего приложении каталога/модели и добавлен эти каталоги в config.load_paths в конфигурационном/environment.rb:рельсов 2.3 config.load_paths в режиме разработки

config.load_paths += Dir["#{Rails.root}/app/models/extras"] 

в приложении/моделях/дополнения у меня есть несколько моделей ActiveRecord, например, сказать:

приложения/модель/дополнение/blog_post.rb

class BlogPost < ActiveRecord::Base 
    has_many :comments 
end 

приложение/модель/дополнение/comment.rb

class Comment < ActiveRecord::Base 
    belongs_to :blog_post 
end 

Теперь, когда я вызываю страницу (т.е./blog_posts /), где показаны только BlogPosts (без загрузки ассоциации комментариев), все работает нормально Но если я вызываю страницу (например./blog_posts/1), где комментарии включены в запросы (например, BlogPost.find (1) ,: включить =>: комментарии), я получаю следующее сообщение об ошибке:?

Expected .../app/models/extras/comment.rb to define Extras::Comment 

Теперь все работает отлично в рабочем режиме, но не в развитии .. у кого есть исправление или решение для этого

+0

Если вы полностью перемещаете эту модель и load_path из/app/models /, он все равно бросает эту ошибку? – giraff

+0

переместил его в приложение/lib, и я больше не получаю эту ошибку – seb

ответ

0

Я думаю, что это связано с тем, что рельсы сопоставляют структуру модуля с каталогами, поэтому, например, он ожидает, что comment.rb в моделях/дополнениях будет фактически находиться в пространстве имен Extras, то есть определяется как Extras :: Comment. Вы должны иметь возможность вручную загружать каталог vi a a требуется загрузить инструкцию из w/в BlogPost или контроллер, где вам это нужно

Смежные вопросы