1

Rails3でメインのトップナビゲーションをループでレンダリングしています。

<ul>
<% Placement.all.each do |placement| %>
  <li><%= link_to placement.placementname, placement_path(placement.id)%> </li>
<%end%>
</ul>

URLのIDに基づいて現在のプレースメントの背景を強調表示するにはどうすればよいですか?URLは次のようになります:
localhost:3000 / Placements / 1
localhost:3000 / Placements / 2
.. ..

ユーザーがこれらのタブの1つをクリックすると、左側に2番目のナビゲーションバーが表示されます。これは私がそれをレンダリングする方法です:

<% @placement.ads.all.each do |ad| %>
    <li><%= link_to ad.adname, placement_ad_path(@placement, ad) %> </li>
<%end%>

URLのIDに基づいて現在の広告の背景を強調表示するにはどうすればよいですか?URLは次のようになります:localhost:3000 / Placements / 1 / ads / 1
localhost:3000 / Placements / 2 / ads / 3
.. ..

4

3 に答える 3

0

スタイルシートとクラス名の選択的な適用を使用します。あなたがすでに設定@placement@ad、コントローラーに設定していると仮定して、私は次のようなことをします:

<ul class="placements">
<% Placement.all.each do |placement| %>
    <li class="placement <%= 'selected' if placement == @placement %>">
        <%= link_to placement.name, placement %>
    </li>
<% end %>
</ul>

<ul class="ads">
<% @placement.ads.each do |ad| %>
    <li class="ad <%= 'selected' if ad == @ad %>">
        <%= link_to ad.name, [@placement, ad] %>
    </li>
<% end %>

次に、このようなものをスタイルシートに入れることができます。(ここでは、SCSSまたはLESSを想定しています。)

.placements {
    .placement {
        // Normal styling goes here

        &.selected {
            // Extra styles for selected items go here
        }
    }
}
于 2013-01-01T20:16:56.760 に答える
0

paramsハッシュを使用して、IDを取得し、それらを比較して、cssクラスをlisにアタッチできます。

<ul>
<% Placement.all.each do |placement| %>
  <li class="<%= 'highlighted' if placement.id==params[:id] %>"><%= link_to placement.placementname, placement_path(placement.id)%> </li>
<%end%>
</ul>

<% @placement.ads.all.each do |ad| %>
    <li class="<%= 'highlighted' if ad.id==params[:id] %>"><%= link_to ad.adname, placement_ad_path(@placement, ad) %> </li>
<%end%>

次に、スタイルシートでCSSクラスを宣言します。

.highlighted{ background-color: #f00;} /* Whatever color fits your needs */
于 2013-01-01T20:17:35.523 に答える
0
<ul>
 <% Placement.all.each do |placement| %>
   <li class=<%= "highlighted" if placement.id==params[:id].to_i %>>
       <%= link_to placement.placementname, placement_path(placement.id)%> </li>
 <%end%>
</ul>

<% @placement.ads.all.each do |ad| %>
  <li class=<%= "highlighted" if ad.id==params[:id].to_i %>>
    <%= link_to ad.adname, placement_ad_path(@placement, ad) %> </li>
<%end%>
于 2013-01-02T09:03:27.523 に答える