/app
現在のところ、親アプリのディレクトリに同じクラスを追加するだけでは、エンジンのディレクトリに含まれているエンジンクラスを再度開くことはできません/app
。例えば:
/my_engine/app/controllers/users_controller.rb
/my_app/app/controllers/users_controller.rb
親アプリに同じ名前のファイルがある場合、からのファイルmy_engine
は読み込まれません。詳細はこちら:
親アプリと同じパスに同じファイル名/クラスをドロップし、クラスを上書きする代わりに再度開くことができる回避策を探しています。多分私は明白な何かを逃しています。class_evalを使用する別のファイル(別のファイル名)でこれを機能させることはできますが、その解決策にはあまり満足していません。このためのエレガントなソリューションに関するアイデアはありますか?
また、この制限の背後に理由があるのか、それともrailsがファイルをロードする方法(含まれているリンクを参照)の結果であり、意図的なものではないのか疑問に思っています。この方法でクラスを再開できるようにエンジンの負荷動作を変更することは、Railsの優れた機能であるように思われます。最初は混乱していたことはわかっていますが、他の開発者もこの問題に苦労することでしょう。