2016-11-21 18 views
0

Ich habe ein Modell, Friends, das ich in einer Ansicht iterieren möchte, aber ich habe Probleme mit, weil ich ungleiche Spaltenbreiten verwenden muss.Schienen: Iterieren mit ungleichmäßigen Spalten

Normalerweise, wenn die Spaltenbreiten konstant wäre, würde ich etwas, was wie folgt tun:

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

jedoch wegen des Layouts mit Ich arbeite, ich einen Versatz in der ersten Spalte setzen müssen :

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

und ich in der zweiten Spalte der Offset nicht wollen:

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

Ho w kann ich durch @user.friends mit abwechselnden Spaltenbreiten iterieren?

Antwort

1

Sie können durch die Liste iterieren

<% @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 %> 
0

wie etwa

<% @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%> 
0

Im Folgenden wird die 1., 3., 5. geben, etc .. friend den Offset. mit each_with_index und fügen bedingte CSS-Klasse basiert auf gerade/ungerade Wert des Index

<% 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 %> 
Verwandte Themen