エンジンはレール:アプリケーションクラスでモデルを拡張します
-
25-09-2019 - |
質問
私は、ベンダー/プラグインでエンジンを持っています。私の問題は、私は、一見、ベースアプリケーション内のモデルとエンジンモデルを拡張can'tこと、である。
マイフォルダ構造ます:
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でそれらを定義した場合、それが動作します。
解決
あなたはconfig.cache_classes = true
development.rb
に試すことができます 他のヒント
私は、これは、ロード順の問題であると考えています。ベンダーのディレクトリには、開発モードで再ロードされません。あなたのアプリでモデルがロードされていないとき、それから継承するためにエンジンモデルを試みます。
申し訳ありませんが、私はこのための修正を知っていないと1を発見したことがありません。私はレール3がこれを対処することになると思います。私たちは通常、ちょうど同じエンジンに関連したモデルを維持するか、それを避けるために、メインのアプリにエンジンのものを上に移動します。これは、吸うと私は適切な解決策を知っているのが大好きだ。
プロダクションモードで試してみて、あなたが問題を持つべきではありません。これが事実である場合は、散弾銃を使用して見てください可能性があります。
所属していません StackOverflow