さて、私が作成した2つの異なるスキャフォールドを使用した小さなプロジェクトがあります。そのためのlayoutsディレクトリには、2つの異なるlayout.html.erbファイルがあります。
私の質問は、これを2つのスキャフォールドビューが共有する1つのメインレイアウトファイルに凝縮する方法です。
基本的に、これを行う目的は、ナビゲーションバーやヘッダーなどをすべて1か所にまとめるだけでよいようにすることです。
さて、私が作成した2つの異なるスキャフォールドを使用した小さなプロジェクトがあります。そのためのlayoutsディレクトリには、2つの異なるlayout.html.erbファイルがあります。
私の質問は、これを2つのスキャフォールドビューが共有する1つのメインレイアウトファイルに凝縮する方法です。
基本的に、これを行う目的は、ナビゲーションバーやヘッダーなどをすべて1か所にまとめるだけでよいようにすることです。
レイアウトファイルにapplication.html.erbという名前を付けると、それがデフォルトのレイアウトファイルになります。コントローラと同じ名前でレイアウトファイルを指定すると、デフォルトのレイアウトが上書きされます。
Railsガイドから:
現在のレイアウトを見つけるために、Railsは最初にapp / views/layoutsでコントローラーと同じベース名のファイルを探します。たとえば、PhotosControllerクラスからのレンダリングアクションは、app / views / layouts / photos.html.erb(またはapp / views / layouts / photos.builder)を使用します。そのようなコントローラー固有のレイアウトがない場合、Railsはapp / views / layouts/application.html.erbまたはapp/views / layouts/application.builderを使用します。.erbレイアウトがない場合、Railsは.builderレイアウトを使用します(存在する場合)。Railsは、特定のレイアウトを個々のコントローラーとアクションにさらに正確に割り当てるためのいくつかの方法も提供します。
ソース: http: //guides.rails.info/layouts_and_rendering.html
編集:
アプリケーションコントローラでデフォルトとなる任意のレイアウトを指定できることを追加する必要があります。
class ApplicationController < ActionController::Base
layout 'some_layout_name'
end
そして、それはrailsが自動的に行う名前の一致を上書きします。
これがお役に立てば幸いです。
application.html.erb
すべてのビューで共有されるレイアウトディレクトリにを含めることができます