一方で、私はマウント可能なエンジンを持っています。たとえば、Front Front にはアセットといくつかのページが含まれているとします。MainApp から分離されています。メインアプリに触れたくない。
一方、レイアウトとフロントの部分を使用して MainApp が必要です。だから私はこのようにレイアウトをセットアップします:
class ApplicationController < ActionController::Base
layout 'front/application'
end
ただし、フロント/アプリケーションは、このように分離されているため、エンジンのパーシャルを直接参照します
render 'header' # front/ prefix is not required
そのため、MainApp ビューは app/views/front/application/header ではなく app/views/application/header を読み込もうとします。
これを修正するには、次のように prepend_view_path を配置します。
class ApplicationController < ActionController::Base
layout 'front/application'
before_filter :prepend_front
protected
def prepend_front
prepend_view_path "app/views/front"
end
end
しかし、エンジン パスがベンダーを指しているため、これは機能しません。エンジンはこれをプリペンド パス リストに追加します: ~/main_app/vendor/private_gems/front-0.0.2/app/views そして、私の prepred_front メソッドはこれを作成します: ~/main_app/app/views/front
私は強制的に正しいパスを追加しようとしました(しかし、それはとても汚いように見えます):
prepend_view_path "#{Rails.root}/vendor/private_gems/front-0.0.2/app/views/front"
機能しません。アプリをクラッシュさせるだけです...
そして、私はここで立ち往生しています。私の設計が間違っているのではないでしょうか?