简单表格中的手动收集复选框

时间:2015-07-07 05:19:31

标签: ruby-on-rails simple-form

我正在使用Simple Form构建一个表单,我必须手动循环一组记录,这些记录是HABTM关系的候选者。我必须进行手动循环,因为我需要在表格中呈现有关记录的其他信息,因此我不能使用简单表格collection_check_boxes

型号:

class Foo < ActiveRecord::Base
  has_and_belongs_to_many :bars
end

class Bar < ActiveRecord::Base
  has_and_belongs_to_many :foos
end

目前为止(HAML):

= f.simple_for_form @foo do |f|
  %table
    - @bars.each do |bar|
      %tr
        %td
          # Line of interest:
          = f.input :bar_ids, as: :boolean, label: bar.name
        %td
          = bar.additional_information

如何告诉简单表单f.input :bar_ids是数组的一部分,以便命名字段foo[bar_ids][]并指定值bar.id

1 个答案:

答案 0 :(得分:0)

归功于this post from 2012,这是相当简单的。

= f.simple_for_form @foo do |f|
  %table
    = f.collection_check_boxes :bars, @bars, :id, :name do |builder|
      %tr
        %td
          = builder.check_box
          = builder.label 
        %td
          = builder.object.additional_information