0

我已经渲染了选择。但我不能为我的标签标签添加“for”属性。它是如何正确的?谢谢。

i = 1
counties.each do |county|
 li class: "city" do
   span id: "check_#{i}" do
     check_box_tag county.name, county.id
   end
   label for: "check_#{i}", class: "city-name-main" do
     county.name
   end
   i += 1
 end
end
4

2 回答 2

0

f.input :countries, as: :check_boxes, :multiple => true, member_label: :name

member_label 将标签设置为复选框。contries 是嵌套模型的名称。当你想设置一个集合时,请执行此操作

f.input :countrie, as: :check_boxes, :multiple => true, member_label: :name,collection: countries.all.map{|t| [t.country_name, t.id]}

于 2014-04-29T09:10:13.460 回答
-1

不幸的是,该:for属性在Arbre库中具有特殊含义,用于标识与标签关联的 ActiveModel。因此,它是少数无法使用 Arbre DSL 设置的 HTML 属性之一。for

根据您的用例,您可以改为使用 ERB(或其他模板库)呈现部分。或者假设您正在向 ActiveAdmin 表单添加复选框,它可以通过 ActiveAdmin 表单块中的 formtastic 完成:

ActiveAdmin.register User do
  form do |f|
    f.inputs do
      f.input :country, as: :check_boxes, collection: counties
    end
  end
end
于 2013-11-04T15:05:19.603 回答