現在のページに応じてナビゲーション バーに別のリンクを表示したい Rails 4 プロジェクトに取り組んでいます。これは私がそれを設定しようとしている方法です:
<ul>
<% if current_page?("/company") %>
<li>Company Space</li>
<% elsif current_page?("/user_page") %>
<li>User Space</li>
<% else %>
<% end %>
</ul>
この部分を正しく記述したことはわかっていapplication.html.erb
ます。レイアウト ページに配置すると、問題なく動作するからです。ただし、上部のナビゲーションバーにまったく同じものを配置すると、機能しません。ナビゲーション バーは、_header.html.erb
現在レイアウトで次のようにレンダリングされている部分呼び出しにあります。
<body>
<%= javascript_include_tag "application" %>
<%= render 'layouts/header' %>
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
<%= yield %>
<%= render 'layouts/footer' %>
</body>
これは、ナビゲーション バーが現在のページを検出していないことに関係していると思われます。なぜこれが起こっているのか誰かが教えてくれることを願っています。理想的には、この機能を使用できる比較的ドライなソリューションを見つけたいと思っています。(条件ごとに個別のパーシャルを作成し、パーシャルを表示するためのロジックを に入れることを考えましたapplication.html.erb
が、これがナビゲーション バーの唯一のコンテンツではないことを考えると、その保守性は非常に悪そうです。)
助けてくれてありがとう!