我在供应商/插件中有一个引擎。我的问题是,我似乎无法使用基础应用程序中的模型扩展引擎模型。
我的文件夹结构:
APPNAME
-app
-models
-item.rb
-vendor
-plugins
-image_gallery
-app
-models
-image_gallery.rb
没有什么特别的...在我的image_gallery.rb中我只有这个:
class ImageGallery < Item
end
但是Rails抱怨缺少item.rb中定义的方法。如果我在image_gallery.rb中定义它们,它就可以工作。
答案 0 :(得分:1)
我认为这是一个加载顺序问题。供应商目录不会在开发模式下重新加载。当引擎模型尝试从中继承时,应用程序中的模型尚未加载。
抱歉,我不知道对此有什么修复,也从未找到过。我认为rails 3将解决这个问题。我们通常只是将相关模型保留在同一个引擎中,或者将引擎内容移动到主应用程序中以避免它。这很糟糕,我很想知道正确的解决方案。
尝试生产模式,你不应该有问题。如果是这种情况,你可以看一下使用霰弹枪。
答案 1 :(得分:1)
您可以尝试在config.cache_classes = true
development.rb