2017-06-01 1 views
-6


was mache ich falsch?

Ich muss Elemente in zwei Spalten zum Beispiel zuordnen.

Wenn i 4 Einzelteile haben, zeichnen 1-Säule mit Klasse "col-md-3"
wenn i 8 Einzelteile haben, ziehen 2-Säule mit Klasse "col-md-3"
wenn i 12 Teile vorhanden sind, zeichnen 3 Spalte mit Klasse „col-md-3“
Wie bekommt man 2 Spalten von der Weile. (in Schienen)

<%= f.collection_check_boxes(:lowcat_ids, @lowcat, :id, :translated_name) do |b| %> 

      <% $i = 1 %> 
      <% while $i < 11 do %> 

       <% if ($i < 5) %> 
        <div class="col-md-3"> 
         <div class="checkbox flat-checkbox"> 
          <%= b.label do %> 
           <%= b.check_box %> 
           <span class="fa fa-check"></span> 
           <%= b.text %> 
          <% end %> 
         </div> 
        </div> 
       <% end %> 

       <% if ($i > 4) %> 
        <div class="col-md-3"> 
         <div class="checkbox flat-checkbox"> 
          <%= b.label do %> 
           <%= b.check_box %> 
           <span class="fa fa-check"></span> 
           <%= b.text %> 
          <% end %> 
         </div> 
        </div> 
       <% end %> 

       <% $i +=1 %> 

      <% end %> 

     <% end %> 
+4

Warum brauchen Sie dort eine globale Variable? –

+0

Warum erwarten Sie, dass 'collection_check_boxes' den Block erwartet? Das Hauptproblem bei diesem Code ist auch, dass 'php' mit der nicht-idiomatischen schlechtesten Ruby-Syntax geschrieben wurde. 'while' Loops sind in' Ruby' nicht gebräuchlich. – mudasobwa

+0

@mudasobwa, wie kann ich dieses Problem in Schienen lösen? –

Antwort

0

eine einfache Rechnung auf i die Anzahl der Spalten geben würde, würden Sie brauchen,

(i.to_f/4).ceil 

gegeben, dass ich die Zahl der Elemente ist Sie haben