私には2つの異なるレイアウトがあります。1つは完全にカスタムで、もう1つはブートストラップです。管理者の場合はブートストラップビューをレンダリングし、非管理者の場合は通常どおりにレンダリングします。管理者とユーザーは多くのビューを共有しないため、ほとんどの場合、これは非常に簡単ですが、いくつかあります。
render
私の当初のアイデアは、ファイルのブートストラップバージョンがあるかどうかをチェックするようにオーバーライドすることでした。したがって、たとえば、ブートストラップ固有のテンプレートが_user.html.erb
あり、これがあります。_user.bootstrap.html.erb
コントローラーを変更したくないので、理想的には、render 'form'
スマートに動作し、あるかどうかを確認し、_form.bootstrap.html.erb
ない場合はフォールバックします。_form.html.erb
最初の試み
私の最初の試みはこのように見えました
# I don't think this is the actual method signature of render
def render(options=nil, extra_options, &block)
# if it should render bootstrap and options is a string and there exists a bootstrap version
# set it up to render the bootstrap view
super(options, extra_options, &b)
end
現在の試み
基本的にファイルが存在するかどうかをチェックし、erbを使用するテンプレートを登録することを考えています。私はまだこれに向けて進展を遂げていません。