0

class="current"最初のナビゲーションの現在のページにを追加しようとしています<li>。したがって、htmlは <li id="nav-home" class="current">現在のページのようになりますが、それだけです。

<% subjects.each do |subject| %>
  <li id="nav-<%= subject.name %>" >
    <a <%= link_to(subject.name, :action => 'show') %></a>
    <ul>
    <% subject.pages.visible.sorted.each do |page| %>
      <li ><%= link_to(page.name, :action => 'show', :id => page.permalink) %></li>
    </ul>   
  <% end %>
<% end %>
4

2 に答える 2

2

current_page?リンク先のページが現在のページであるかどうかを確認するために使用できます。

<li id="nav-<%= subject.name %>" class="<%= current_page?( page_i_am_linking_to ) ? 'current' : '' %>" >

これにより、クラスが「現在」に設定されるか、空のままになります。

リンク/リンク先へのリンクをどのように構築するかがよくわかりませんでした。そのため、「page_i_am_linking_to」を使用しました。これを有効なものに置き換える必要があります。

RailsAPIも参照してください

于 2012-04-16T13:32:50.547 に答える
0

レンダリングするページに設定されたインスタンス変数が必要な場合@current_page_idは、次のように、必要な要素にクラスを追加するだけです(リスト要素に配置することを選択しました)。

<% subjects.each do |subject| %>
<li id="nav-<%= subject.name %>" >
    <a <%= link_to(subject.name, :action => 'show') %> </a>
 <ul>
<% subject.pages.visible.sorted.each do |page| %>
 <li class="<%= @current_page_id == page.id ? 'current' : '' %>"><%= link_to(page.name, :action => 'show', :id => page.permalink) %></li>
 </ul>

<% end %>

代わりにリンクに配置したい場合:

<li ><%= link_to(page.name, :action => 'show', :id => page.permalink, :class => @current_page_id == page.id ? 'current' : '') %></li>
于 2012-04-16T13:36:04.260 に答える