0

チェックボックスを選択して、ユーザーが選択した別の属性の値を上書きするフォームがあります。

フォーム:

<%= 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
4

1 に答える 1