パーシャル、レイアウト、およびテンプレートを含むビューを、異なる名前空間のコントローラー間で共有したいと考えています。
問題
自分の意見を入れるのではなく
app/views/#{namespace}/#{controller}/...
app/views/layouts/#{namespace}/...
自分の意見を取り入れたい
app/views/#{controller}/...
app/views/layouts/... # as normal, without namespaces
これも任意でお願いしたいです。たとえば、レイアウトがある場合はapp/views/layouts/#{namespace}/...それを使用し、そうでない場合app/views/layouts/...は通常どおり使用します。
私が試したいくつかのこと:
ビューパスが何であれ、テンプレートを検索する
prepend_view_pathため、ここでは次のようなものを使用することはできません。admin/courses#indexadmin/courses/indexメソッドを使用するとうまくいく
layoutかもしれませんが、おそらくテンプレートとパーシャルにはうまくいきません。render メソッドをオーバーライドしようとしましたが、これは少しハッキーなようです。
ApplicationControllerビュー内からのパーシャルのレンダリングを処理しないためです。したがって、クラスで render メソッドを再度オーバーライドする必要がありますがApplicationHelper、これは扱いにくく、DRY ではなく、それほど単純ではありません。
前もって感謝します!