Rails:使用不均匀的列进行迭代

时间:2016-11-21 07:45:48

标签: ruby-on-rails-4

我有一个模型Friends,我想在视图中进行迭代,但我遇到了麻烦,因为我不得不使用不均匀的列宽。

通常,如果列宽是常数,我会做这样的事情:

<% @user.friends.each do |friend|%>
  <div class="col-md-6">
    <%= friend.name %>
  </div>
<% end %>

但是,由于我正在使用的布局,我需要在第一列中添加一个偏移量:

<div class="col-md-5 col-md-offset-1">

并且我不想要第二列中的偏移量:

<div class="col-md-6">

如何使用交替的列宽迭代@user.friends

3 个答案:

答案 0 :(得分:1)

您可以使用each_with_index遍历列表,并根据索引的奇数/偶数值添加条件css类

<% @user.friends.each_with_index do |friend, index| %>
  <div class="<%= (index).even? ? 'col-md-5 col-md-offset-1' : 'col-md-6' %>">
    <%= friend.name %>
  </div>
<% end %>

答案 1 :(得分:0)

怎么样

<% @user.friends.each_with_index do |friend, index|%>
<% if index == 0 %>
  <div class="col-md-5 col-md-offset-1">
    <%= friend.name %>
  </div>
<% else %> 
  <div class="col-md-6"> #whatever offset u need 
    <%= friend.name %>
  </div>
<%end%>

答案 2 :(得分:0)

以下将给出第1,第3,第5等。friend偏移量。

<% odd = true %>
<% @user.friends.each do |friend|%>
  <%= raw(odd ? '<div class="col-md-5 col-md-offset-1">' : '<div class="col-md-6">') %>
    <%= friend.name %>
  </div>
  <% odd = !odd %>
<% end %>