2016-06-28 6 views
0

Wie kann ich mein collection_check_boxes-Objekt durch das checked-Attribut nach meinem Modell überprüfen lassen?Wie verwendet man collection_check_boxes mit aktivierten Attributen?

Ich habe dies als meine Checkbox Form

<div class="form-group"> 
    <label><%= car_brand.name %></label> 
    <% car_model_each_brand = return_car_model_by_brand(car_brand.id) %> 
    <% car_checked_model = return_car_model_by_filter_brand(@selected_model,car_brand.id) %> 
    <br> 
    <% car_checked_model.each do |car_model_check| %> 
     id:<%= car_model_check.id %> <%= car_model_check.code_name %> , 
    <% end %> 
    <br> 
    <div class="checkbox"> 

     <%= collection_check_boxes(:car_insurance_object_model, 
            :car_model_id, 
            car_model_each_brand , 
            :id,:code_name, 
            checked: car_checked_model) do |b| 
      b.label { b.check_box + b.text } 
     end %> 

    </div> 
</div> 

Dies ist, wie es

enter image description here

enter image description here

Aber auf Alfa sieht aus wie wird romeo es auf 156 zu überprüfen und auch auf Audi sollte es auf a3 überprüfen.

Also wie kann ich das beheben? Danke!

+0

Die sehen wie stilisierte Checkboxen aus - haben Sie die HTML-Quelle angeschaut und festgestellt, dass das 'checked'-Attribut tatsächlich fehlt, wo Sie erwarten, dass es vorhanden ist? Was ist das Ergebnis, ohne das Attribut 'checked:' zu übergeben? Rails sollte das automatisch zuweisen, es sei denn, es erfordert eine bestimmte Logik in Ihrem Back-End. – Todd

+0

Ich habe meine HTML-Quelle bereits hinzugefügt, so dass sie immer noch nicht überprüft wird und ohne checked: Attribut? Das Ergebnis ist das gleiche. – user3403614

Antwort

1

Diese answer here hat mir geholfen. Fügen Sie einfach ein checked: true als Argument von check_box hinzu. Also in Ihrem Fall würde es so aussehen:

<%= collection_check_boxes(:car_insurance_object_model, 
    :car_model_id, 
    car_model_each_brand , 
    :id,:code_name, 
    checked: car_checked_model) do |b| 
    b.label { b.check_box(checked: true) + b.text } 
end %> 

Denken Sie daran true für jeden anderen Ausdruck zu ändern, die zu true oder false ausgewertet werden.

Verwandte Themen