Имея тот же вопрос, я попытался использовать form_for, и, кажется, работает. Я просто добавил кнопку отправки для дополнительных действий.
= form_for @request do |f|
= render 'shared/error_messages', object: f.object
= f.label :status
= f.text_field :status
...some more fields
= f.submit "Save changes", class: "btn btn-large btn-primary" <--- This is initial button
= f.submit "Accept", name: 'accept', class: "btn btn-large btn-primary"
= f.submit "Reroute", name: 'reroute', class: "btn btn-large btn-primary"
= f.submit "Solve", name: 'solve', class: "btn btn-large btn-primary"
Затем в контроллере вы проверяете, какая кнопка была нажата:
if !params[:accept].nil?
if !params[:reroute].nil?
if !params[:solve].nil?
Имя начальной кнопки, которую вы можете найти в источнике отображаемой страницы. Это "совершить" для меня.