パーシャル、レイアウト、およびテンプレートを含むビューを、異なる名前空間のコントローラー間で共有したいと考えています。
問題
自分の意見を入れるのではなく
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#index
admin/courses/index
メソッドを使用するとうまくいく
layout
かもしれませんが、おそらくテンプレートとパーシャルにはうまくいきません。render メソッドをオーバーライドしようとしましたが、これは少しハッキーなようです。
ApplicationController
ビュー内からのパーシャルのレンダリングを処理しないためです。したがって、クラスで render メソッドを再度オーバーライドする必要がありますがApplicationHelper
、これは扱いにくく、DRY ではなく、それほど単純ではありません。
前もって感謝します!