У меня есть форма со списком вещей, и уже есть действие для обновления элементов.
Мне нужна еще одна кнопка, которая при нажатии запускает другое действие для удаления выбранных элементов.
= form_for @new_item,:url => {:controller => "item_lists",:action => "update_list" } do |f|
- @items.each do |it|
%input{:type=>"hidden",:name=>"item_list[#{it.id}]position",:value=>it.position, :class=>'position'}
%textarea{:name=>"item_list[#{it.id}]field1"}
=it.field1
%textarea{:name=>"item_list[#{it.id}]field2"}
=it.field2
%input{:type=>'checkbox', :name=>'selected_items[]', :value=>it.id}
=(it.valid?) ? "" : it.errors.full_messages
%input{:type=>"submit", :value=>"Save changes", :name=>'save'}
%input{:type=>"submit", :value=>"Remove selected", :name=>'delete'}
Этот вопрос , кажется, указывает на то, что я должен проверять параметры в своем действии, чтобы выяснить, что было нажато. Но это кажется грязным, мой контроллер может быстро выродиться в массу ifs, когда я добавлю больше действий.
Есть ли более элегантный способ сделать это, то есть заставить его просто перенаправить на правильный метод?
Спасибо за любую помощь ...