Rails 3.2
На мой взгляд, у меня есть следующее (тонкое):
= link_to 'Delete', cancel_admin_ticket_path, data: { confirm: t('.confirm', default: t("helpers.links.confirm", default: 'Are you sure?')) }, class: 'btn btn-danger destroy-btn'
В моем admin / tickets_controller.rb у меня есть:
def cancel
@ticket = Ticket.find params[:id]
existing_workflow_state = @ticket.workflow_state
msg_success = "Ticket #{@ticket.number} status has been changed from #{existing_workflow_state} to cancelled"
msg_already_cancelled = "Ticket #{@ticket.number} is already cancelled"
msg_failure = "Ticket #{@ticket.number} status is #{@ticket.workflow_state}, it cannot be cancelled"
if existing_workflow_state == 'cancelled'
redirect_to admin_tickets_path, alert: "Ticket #{@ticket.number} has already been cancelled"
elsif !ticket_can_be_deleted(@ticket).nil?
@ticket.workflow_state = 'cancelled'
@ticket.save
redirect_to admin_tickets_path, notice: "Ticket #{@ticket.number} status has been changed from #{existing_workflow_state} to cancelled"
else
redirect_to admin_tickets_path, alert: "Ticket #{@ticket.number} status is #{existing_workflow_state}, it cannot be cancelled"
end
end
В моем route.rb у меня есть:
namespace :admin do
resources :tickets, except: [:edit] do
member do
put 'cancel', to: 'tickets#cancel'
end
end
end
Когда я делаю рейковые маршруты, вот маршрут, который я получаю:
cancel_admin_ticket PUT /admin/tickets/:id/cancel(.:format) admin/tickets#cancel
Когда я пытаюсь запустить приложение, я получаю следующее сообщение об ошибке:
Routing Error
No route matches {:action=>"cancel", :controller=>"admin/tickets"}
Есть идеи?