“collection_select,多=>真正的”多“check_box”选项如何更换collection_select
(与:multiple => true
)带的check_box
选项,列表使得存在在每个对象check_box
选项采集?替换:在Rails的
是否有优雅使用表单构建器实现此目的的方法(即不使用*_tag
助手)?我想尽可能地依靠ActiveRecord的内置功能...
“collection_select,多=>真正的”多“check_box”选项如何更换collection_select
(与:multiple => true
)带的check_box
选项,列表使得存在在每个对象check_box
选项采集?替换:在Rails的
是否有优雅使用表单构建器实现此目的的方法(即不使用*_tag
助手)?我想尽可能地依靠ActiveRecord的内置功能...
我不认为有一个内置的“优雅”的方式来做到这一点。
这railscast应该让你去,不过:
你可以做这样的(使用HAML例子)。
%fieldset
Colors I like
- %w[red blue].each do |color|
= f.label color
= f.check_box :colors_liked, {multiple: true}, color, nil
末的nil
选项防止滑轨从同名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">
当表单提交,这些参数将包含的检查选项的值的数组。