我有一个MyModel带有序列化属性的模型a,描述了一个符号数组.
此代码有效:
<% form_for @my_model do |f| %>
<%= f.select :a, MyModel::AS, :multiple => true) %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
参数是正确的:
{ :my_model => { :a => [:a_value1, :a_value2] } }
Run Code Online (Sandbox Code Playgroud)
我想将这个多选项转换为一组复选框,如下所示:
<% form_for @my_model do |f| %>
<% MyModel::AS.each do |a_value|
<%= f.check_box(:a_value) %>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
它也有效,但参数完全不同:
{ :my_model => { :a_value1 => 1, :a_value2 => 1 } }
Run Code Online (Sandbox Code Playgroud)
我想到2个解决方案可以回归到第一个解决方案......
check_box转换为check_box_tag,替换多个选择,并在check_box_tags上的用户clic时添加一些javascript以"检查"选择值.然后,参数将直接在控制器中相同.什么解决方案不那么难看?或者还有其他的吗?