Rails 3.1, метод выхода Devise не работает с пространством имен равным devise_for - PullRequest
0 голосов
/ 19 января 2012

в моем приложении на Rails есть такие маршруты. Rb:

 devise_for :admin
 namespace :admin do
     root :to  => 'dashboard#index'
     resources :customers 
 end

Если попытаться выйти из системы с помощью link_to ('Logout', destroy_admin_session_path,: method =>: delete), но rails print "Нет подходящих маршрутов [GET]" / admin / sign_out ""

Можно ли без изменений исправить маршруты?

Ответы [ 3 ]

1 голос
/ 19 января 2012

Исправлено путем установки метода GET для действия sign_out, не очень безопасного, но работающего.Если у кого-то есть такая же проблема, то это новый route.rb:

devise_for :admin, :sign_out_via => [ :get ]
 namespace :admin do
     root :to  => 'dashboard#index'
     resources :customers 
 end

Если у кого-то есть более безопасное исправление, добро пожаловать

1 голос
/ 19 января 2012

Похоже, опция :method не работает, поскольку вы спрашиваете УДАЛИТЬ и получаете GET. Убедитесь, что в вашем макете <%= javascript_include_tag :defaults %>

Вы также можете прочитать этот вопрос об этой же проблеме: Не найдено ни одного маршрута "/ users / sign_out" devise rails 3

0 голосов
/ 22 июля 2015

я знаю, что это старый пост, но у меня была та же проблема (не используя devise, а нестандартное решение)

, и для меня это было в моем макете приложения (с именем admin.html.erb, потому что яу меня было пространство имен администратора, как у вас) я должен был включить следующую строку, чтобы он работал с delete, а не с get.

<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>

важна первая часть, я не думаю, что turbolinks поможет этой ошибке вообще.

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