3

したがって、次のようなビューコードがあります。

<div class="box-content">
    <table class="table table-properties">
        <tbody>             
            <%= render :partial => 'property', collection: @search.listings, as: :listing %>
        </tbody>
    </table>                                
</div>

その中に_property.html.erb、私はこれを持っています:

<tr>
    <td class="span2">
        <%= link_to listing_path(listing), :class => "thumbnail thumb2" do %>
            <%= image_tag "room_1.jpg", :alt => "Lucas" %>
        <% end %>
    </td>
    <td>
        <h2><%= link_to listing.headline, listing_path(listing) %></h2>
        <h5><%= listing.listing_type.name if listing.listing_type "#{listing.neighborhood.name.capitalize}" %></h5>
        <h5>Maintenance <%= number_to_currency(listing.maintenance) %></h5>
    </td>
    <td class="span1">
        <h2 class="price"><%= number_to_currency(listing.price)%></h2>
        <h5><%= "#{listing.num_bedrooms} bed, #{listing.num_bathrooms} bath" %></h5>
    </td>
</tr>

基本的に、上記のコードを正確に生成したいのですが、行ごとに、唯一の違いは、2 行ごと (つまり、すべての偶数行) にclass=striped..ieを持たせたいこと<tr class=striped>です。

これを DRY の方法で行う方法についての考えはありますか?

4

4 に答える 4

11

とを使ってみましたcyclecurrent_cycle

http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-cycle

<tr class="<%= cycle('odd', 'even') -%>">
  <!-- etc -->
</tr>

これにより、クラスがoddandに置き換えられeven、コレクションをレンダリングするときにIMHOも機能するはずです。実際のサイクルの値が複数回必要な場合は、それを取得しますcurrent_cycle(複数回呼び出すと、必要な場合cycleを除いて、サイクルが台無しになるため)。

于 2013-02-15T10:57:11.843 に答える
1

:nth-child()cssセレクターを使ったほうがいいのではないですか?http://www.w3schools.com/cssref/sel_nth-child.asp

于 2013-02-15T11:00:18.370 に答える
0

jqueryでそれを行います:

$(document).ready(function(){
   $("table.table-properties > tbody > tr:odd").addClass("odd");
   $("table.table-properties > tbody > tr:not(.odd)").addClass("even");  
});
于 2013-02-15T11:05:45.057 に答える
0

次のようなことを試すことができます:

 <tr class="<%=cycle("odd", "even") %>">
    <td class="span2">
        <%= link_to listing_path(listing), :class => "thumbnail thumb2" do %>
            <%= image_tag "room_1.jpg", :alt => "Lucas" %>
        <% end %>
    </td>
    <td>
        <h2><%= link_to listing.headline, listing_path(listing) %></h2>
        <h5><%= listing.listing_type.name if listing.listing_type "#{listing.neighborhood.name.capitalize}" %></h5>
        <h5>Maintenance <%= number_to_currency(listing.maintenance) %></h5>
    </td>
    <td class="span1">
        <h2 class="price"><%= number_to_currency(listing.price)%></h2>
        <h5><%= "#{listing.num_bedrooms} bed, #{listing.num_bathrooms} bath" %></h5>
    </td>
 </tr>
于 2013-02-15T10:58:19.253 に答える