2

ベンダー/プラグインにエンジンがあります。私の問題は、基本アプリケーションのモデルでエンジンモデルを拡張できないように見えることです。

私のフォルダ構造:

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で定義すると、機能します。

4

2 に答える 2

1

これはロードオーダーの問題だと思います。ベンダーディレクトリは、開発モードでは再ロードされません。エンジンモデルがモデルから継承しようとしたときに、アプリのモデルが読み込まれていません。

申し訳ありませんが、これに対する修正はわかりません。また、修正を見つけたことがありません。Rails3がこれに対処すると思います。通常、関連するモデルを同じエンジンに保持するか、エンジンをメインアプリに移動して回避します。これはひどいです、そして私は適切な解決策を知りたいです。

本番モードで試してみてください。問題は発生しないはずです。この場合、ショットガンの使用を検討できます。

于 2010-06-09T10:03:09.980 に答える
1

あなたはあなたに設定しようとすることができconfig.cache_classes = trueますdevelopment.rb

于 2010-06-09T11:05:12.870 に答える