#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