概要
railsでオリジナルアプリ製作中に躓いた出来事。
下記の赤い枠
で囲まれた部分を、部分テンプレートとして呼び出していました。
※↑ユーザー登録画面、作成中なので見づらいです。。
トップページは以下のような構成で、ヘッダーを呼び出したくないので、どうしようかと考えてました。
※↑オリジナルアプリのTopページ
部分テンプレートの呼び出し方
トップページ以外には全てヘッダーを表示させたいのでapplication.html.erb
で部分テンプレートをレンダーしています。
application.html.erb
<!DOCTYPE html>
<html>
<head>~省略~</head>
<body>
<%= render "shared/header" %> <%# ここでヘッダーを呼び出している。
<%= yield %>
<%= render "shared/footer" %>
</body>
</html>
current_page?で場合分けしてみた
こちらの記事を参考に現在のページがtopページ(root_path)
でない場合は、部分テンプレートを呼び出さないようにしてみた。
application.html.erb
<body>
<% unless current_page?(root_path) %> <%# unlessで現在のページがrootなら呼び出さない
<%= render "shared/header" %>
<% end %>
<%= yield %>
<%= render "shared/footer" %>
</body>
まとめ
部分テンプレートを呼び出すページを指定する時に、コントローラーに記載したり
JavaScriptで呼び出すページを発火させたり、様々な手段がありそうですが
自分の場合は1ページのみ非表示なのでこのやり方が良いかなと思いました。
もしこの記載方法が推奨されてない理由などありましたら、ご指摘いただければと思います。