2016-04-04 8 views
0

Ich habe diese Art jeder Schleife mit Formnicht erste Form bekommen in jeder Schleife

<% @catagories.each do |cat| %> 
    <label> 
     Name: 
     <%= cat.name %> 
    </label> 
    <label> 
     Public 
     <%= form_for cat, :html => {:class => 'visible_in_activity_record'} do |f| %> 
     <%= f.check_box :visible_in_activity_record ,:'data-role'=>"none"%> 
     <% end %> 
    </label> 
<% end %> 

Wenn ich zeigen dies in Browser zur Folge hat.

Das erste Element der Schleife ist ohne Form und danach haben alle Elemente Form.

Danach habe ich versucht, Code und überprüfen Formular aus inspect Element im Browser, aber im Browser, der das gleiche Problem, dass ich nicht Formular im ersten Element der Schleife sehen kann.

Wenn jemand diese Art von Problem konfrontiert, dann bitte helfen Sie mir, dies zu lösen.

Vielen Dank.

+0

Versuchen Sie ohne die Klasse, um sicher zu sein, dass es nicht durch CSS versteckt ist. – Syl

+0

check '@ catagories.first' - was gibt es zurück. Idealerweise sollte dies nicht der Fall sein, es sei denn, das erste Element ist null – dp7

+0

dkp: Wenn @ catagories.first null ist, wird stattdessen eine Ausnahme ausgelöst! –

Antwort

0

Wenn Sie build oder new in Ihrem Controller für Kategorien aufrufen, so wird die erste oder die letzte Null sein.

Sie können dies umgehen, indem für einen neuen Datensatz zu prüfen, bevor Sie das Formular machen, etwa so:

<% @catagories.each do |cat| %> 
    <%- unless cat.new_record? %> 
    <label> 
     Name: 
     <%= cat.name %> 
    </label> 
    <div class='label-style'> 
     Public 
     <%= form_for cat, :html => {:class => 'visible_in_activity_record'} do |f| %> 
     <%= f.check_box :visible_in_activity_record ,:'data-role'=>"none"%> 
     <% end %> 
    </div> 
    <% end %> 
<% end %> 

Außerdem, wenn Sie interessiert sind, ist es ungültig html eine ganze Form innerhalb eines label zu setzen Feld, könnte es besser sein, ein div zu erstellen, das denselben Stil und dasselbe Verhalten wie das Label hat.

+1

no iam nicht bekommen nil record ich bekomme seinen wert, wenn ich trash code. Auch ich habe versucht, Ihre Lösung, aber immer noch den gleichen Fehler. Danke für die Antwort :) –

Verwandte Themen