Мой вопрос очень прост: как я могу изменить aasm
переходы при нажатии кнопки? На что я должен полагаться?Рубины на рельсах AASM Изменение перехода при нажатии кнопки
У меня есть две кнопки: Approve
и Reject
. Мои состояния выглядеть следующим образом:
aasm :column => 'state' do
state :pending, :initial => true
state :approved
state :rejected
event :approve do
transitions :to => :approved, :from => [:pending]
end
event :reject do
transitions :to => :rejected, :from => [:pending]
end
end
UPDATE: Мои PARAMS эти:
{"utf8"=>"✓", "_method"=>"put", "authenticity_token"...", "commit"=>"APP", "id"=>"65"}
.
И это, как я достигаю действие с точки зрения:
= form_for([:admin, shop], method: :put, data: { confirm: "You sure?" }) do |f|
= f.submit "Approve", :controller => :shops, :action => :approve
Мой код контроллера:
def approve
@shop = Shop.find(params[:id])
@shop.approve!
end
Маршруты:
namespace :admin do
get "shops/:id/approve" => "shops#approve"
Спасибо, Шрикант! Я добавил действие к контроллеру и получил доступ к нему из представления. Но теперь я должен решить эту ошибку: 'param отсутствует или значение пустое: hotel'. Не могли бы вы мне помочь? Я сделал обновление. Еще раз спасибо! –
Не могли бы вы разместить код контроллера? Я поставил здесь образец, вы тоже можете это сослаться. –
Спасибо! Но извините, такая же ошибка. Я обновил .. И также, при нажатии кнопки URL-адрес похож на http: // localhost: 3000/admin/stores/65 (в конце не утверждается). –