是否可以在哈希内的Rails中传递checked check_box_tag
s的值?form_for
这是表单的一个非常通用的基本版本:
<%= form_for(:object, :url => { :action => 'create', :id => params[:id]}) do |f| %>
<p>Field_a: <%= f.text_field(:field_a) %></p>
<p>Field_b: <%= f.text_field(:field_b) %></p>
<p>Field_c: <%= f.text_field(:field_c) %></p>
<p>Check boxes:</p>
<% check_box_choices_object_array.each do |s| %>
<%= check_box_tag(s.name, 1, false) %>
<%= .name %><br />
<% end %>
<%= submit_tag("Create") %>
<% end %>
大致输出:
Field_a ___________________
Field_b ___________________
Field_c ___________________
Check boxes:
[] box_a
[] box_b
[] box_c
[] box_d
[] box_e
[] box_f
[] box_g
我的问题是,由于可用的复选框不是数据库中对象表中的实际字段(即我没有check_box(:field)
在表单中使用),因此每个选中的复选框都作为单独的参数传递(即"box_a" => "1", "box_b" => "1", "box_e" => "1"
)。我希望他们这样通过:
:checked_boxes => {"box_a" => "1", "box_b" => "1", "box_e" => "1"}
这样,我可以使用params[:checked_boxes]
. 我该怎么做,或者更好的是,有没有更好的解决方案(我是 Rails 新手)?