Разработка: Неизвестное действие, не удалось найти сопоставление разработки для пути «/accounts / sign_out»

#ruby-on-rails #devise

#ruby-on-rails #разработка

Вопрос:

Я продолжаю получать эту ошибку каждый раз, когда я указываю в своем браузере на «account / sign_out» (запрос GET):

 Unknown action, Could not find devise mapping for path "/accounts/sign_out"
  

Вот мой маршрут для разработки:

 devise_for :accounts, :controllers => { :registrations => :accounts  }
  

Должно быть, что-то тривиальное, но я не понимаю. В документации говорится, что devise уже предоставляет действие для выхода и привязывает его именно к этому маршруту «/accounts /sign_out». Пожалуйста, поделитесь со мной, что я делаю не так?

Вывод rake routes показывает, что действие сопоставлено:

 destroy_account_session GET   /accounts/sign_out(.:format)   {:action=>"destroy", :controller=>"devise/sessions"}
  

Комментарии:

1. покажите вывод rake routes , пожалуйста.

Ответ №1:

Проблема заключалась в том, что в routes.rb у меня также был resources :accounts маршрут, объявленный ранее devise_for . Таким образом, решение оказалось в том, чтобы поместить его после devise_for декларации:

 devise_for :accounts, :controllers => { :registrations => :accounts  }
resources :accounts