如何为复选框添加更多详细信息?

时间:2018-03-24 19:19:06

标签: ruby-on-rails ruby

我有一个复选框,列出了我的所有额外内容。我目前已经开始工作,因此它显示为列表,用户可以选择他们喜欢的额外内容。

我已经使用了以下内容:

<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>

enter image description here

如何在图像上方的项目名称旁边显示复选框?

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

任何帮助都将不胜感激。

1 个答案:

答案 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