我有一个表单,我希望复选框选择覆盖用户为另一个属性选择的值。
表格:
<%= form_for(@foo) do |f| %>
<tr>
<th>FooType</th>
<td><%= f.select :foo_type_id, options_from_collection_for_select(FooType.order(:name).all, "id", "name", @foo.cabinet_type_id) %></td>
</tr>
<tr>
<th>Legacy Foo</th>
<td><%= f.check_box :is_legacy %> </td>
</tr>
如果检查了 :is_legacy,我在哪里放置代码来覆盖用户对 :foo_type 的选择?我尝试在保存新的 Foo 后添加一个 update_attribute 命令,但它似乎不起作用:
if @foo.save_standard and ! row.nil?
#set foo type to 38u when it is a legacy foo
if params[:is_legacy] == true
@foo.update_attribute(foo_type_id, 2)
end