Ruby on rails 更换';集合_选择,:多个=>;正确';具有多个';选中复选框';Rails中的选项

Ruby on rails 更换';集合_选择,:多个=>;正确';具有多个';选中复选框';Rails中的选项,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,如何用复选框选项列表替换集合(使用:multiple=>true),以便集合中的每个对象都有一个复选框选项 是否有一种优雅的方法可以使用表单生成器(即不使用*.\u标记助手)来实现这一点?我希望尽可能地依靠ActiveRecord的内置功能…我认为没有一种内置的“优雅”方式可以做到这一点 不过,这辆火车应该能让你走了: (文本版本n) 您可以这样做(例如使用HAML) 末尾的nil选项可防止Rails以相同的名称构建一个隐藏的复选框,该复选框的值为0,如果要进行多次选择,您肯定不希望这样做

如何用
复选框
选项列表替换
集合
(使用
:multiple=>true
),以便集合中的每个对象都有一个
复选框
选项


是否有一种优雅的方法可以使用表单生成器(即不使用
*.\u标记
助手)来实现这一点?我希望尽可能地依靠ActiveRecord的内置功能…

我认为没有一种内置的“优雅”方式可以做到这一点

不过,这辆火车应该能让你走了:

  • (文本版本n)
    • 您可以这样做(例如使用HAML)

      末尾的
      nil
      选项可防止Rails以相同的名称构建一个隐藏的复选框,该复选框的值为0,如果要进行多次选择,您肯定不希望这样做

      这将产生:

      <label for="colors_liked_red">Red</label>
      <input id="my_form_colors_liked_red" \
        name="my_form[colors_liked][]" type="checkbox" value="red">
      
      <label for="colors_liked_blue">Blue</label>
      <input id="my_form_colors_liked_blue" \
        name="my_form[colors_liked][]" type="checkbox" value="blue">
      
      红色
      蓝色
      
      提交表单时,参数将包含选中选项的值数组

      <label for="colors_liked_red">Red</label>
      <input id="my_form_colors_liked_red" \
        name="my_form[colors_liked][]" type="checkbox" value="red">
      
      <label for="colors_liked_blue">Blue</label>
      <input id="my_form_colors_liked_blue" \
        name="my_form[colors_liked][]" type="checkbox" value="blue">