Renderメソッドが正しく読み込まれない!!
状況
・Railsを使ったアプリケーションの制作中
・アプリの新規登録画面new.html.erb
を作成中。
・このトップページは、SamplesコントローラーのnewアクションのViewとする。
・Viewの記述に、renderメソッド
を使用して部分テンプレートを呼び出そうとした。
Samplesコントローラーのindex.html.erbには
<%= render ‘shared/second-header’ %>
と記述している。
一見、間違ってなさそうだけど、なぜ?
原因と解決
理由は単純でした。
部分テンプレートの_second-header.html.erb
のディレクトリです。
views/devise/shared/_second-header.html.erb
にあるので、
views/samples/new.html.erb
にあるnewファイルからの呼び出しをするならば
<%= render ‘devise/shared/second-header’ %>
# テンプレートの呼び出しの時は、頭のアンダーバー _ は省略可。
と書かなければ呼び出したいファイルの位置までたどれません。
同じviewsファイルの中にはありますが、
その後はdeviseフォルダ
とsamplesフォルダ
で分かれていますので、
同じディレクトリに存在しない場合は、しっかりと上の階層のフォルダから指定するということですね。
単純なんですが、ディレクトリの確認は重要です。