我将一些文件移到app / models目录下的子文件夹中,并在config / environment.rb的config.load_paths中添加了这些目录:
config.load_paths += Dir["#{Rails.root}/app/models/extras"]
应用程序/模型/演员/ blog_post.rb
class BlogPost < ActiveRecord::Base
has_many :comments
end
应用程序/模型/演员/ comment.rb
class Comment < ActiveRecord::Base
belongs_to :blog_post
end
现在当我调用一个只显示BlogPosts的页面(即。/ blog_posts /)时(不加载评论关联)一切正常 但是,如果我调用一个页面(即。/ blog_posts / 1),其中评论包含在查询中(例如,BlogPost.find(1,:include =&gt;:comments),我会收到以下错误:
Expected .../app/models/extras/comment.rb to define Extras::Comment
现在一切都在生产模式下工作正常,但不在开发中..任何人都有解决方案或解决方案?
答案 0 :(得分:0)
我认为这是因为rails将模块结构映射到目录,因此,例如,它希望models / extras中的comment.rb实际上位于名称空间Extras中,即定义为Extras :: Comment。您应该能够通过在BlogPost或您需要的控制器中使用require to load语句手动加载目录