Приложение не находит маршрут - PullRequest
0 голосов
/ 06 сентября 2018
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"}

Есть идеи?

1 Ответ

0 голосов
/ 06 сентября 2018

Добавьте method: :put к методу link_to и @ticket в качестве аргумента для именованного маршрута: cancel_admin_ticket_path(@ticket)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...