我有一个复选框,列出了我的所有额外内容。我目前已经开始工作,因此它显示为列表,用户可以选择他们喜欢的额外内容。
我已经使用了以下内容:
<div class="field">
<%= form.label "Add Extras:" %>
<div class="row" >
<% @extras.each do |extra| %>
<div class="col-lg-4" align="center">
<%= extra.item %>
<div id="img-box">
<% if not extra.image.blank? %>
<%= image_tag extra.image, :size => "200x200" %>
<% else %>
<%= image_tag "no-image.jpg", :size => "200x200" %>
<% end %>
</div>
£<%= extra.price %>
</br>
</div>
<% end %>
</div>
<%= form.collection_check_boxes :extra_ids, Extra.all, :id, :item do |b| %>
<div class="collection-check-box">
<%= b.check_box %>
<%= b.label %>
</div>
<% end %>
</div>
如何在图像上方的项目名称旁边显示复选框?
schema.rb
create_table "extras_reservations", id: false, force: :cascade do |t|
t.integer "reservation_id", null: false
t.integer "extra_id", null: false
end
任何帮助都将不胜感激。
答案 0 :(得分:0)
尝试删除collection_check_boxes
部分,并将checkbox
放在循环中,如下所示:
<%= hidden_field_tag "reservation[extra_ids][]", nil %>
<% @extras.each do |extra| %>
<div class="col-lg-4" align="center">
<%= check_box_tag 'reservation[extra_ids][]', extra.id, @reservation.extra_ids.include?(extra.id), id: dom_id(extra) %>
<%= label_tag dom_id(extra), extra.item %>
# ...
</div>
<% end %>
不要忘记允许:extra_ids