ruby on rails - How to overide user selected attribute based on another attribute's value -
i have form want checkbox selection override user's selected value attribute.
the form:
<%= form_for(@foo) |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>
where put code overwrite user's selection :foo_type based on if :is_legacy checked? tried adding update_attribute command after saving new foo, doesn't seem work:
if @foo.save_standard , ! row.nil? #set foo type 38u when legacy foo if params[:is_legacy] == true @foo.update_attribute(foo_type_id, 2) end
i think there couple of mistakes in following code:
if @foo.save_standard , ! row.nil? #set foo type 38u when legacy foo if params[:is_legacy] == true @foo.update_attribute(foo_type_id, 2) end end
try:
if @foo.save_standard && row if params[:foo][:is_legacy] @foo.update_attribute(:foo_type_id, 2) # careful, method not fire callbacks end end
assuming instance object foo
class (which not). if not, replace
params[:foo]
by whatever instance class is.
Comments
Post a Comment