Рельсы, ни один маршрут не выйдет из системы
Хотя есть много похожих вопросов, я искал его в течение нескольких часов, но по-прежнему не могу его исправить.
ко
рельсы 3.0.9
рубин 1.9.2
разработать 1.4.2
Я изменил URL-адрес для входа по умолчанию, используя:
5 resources :users
6 devise_for :users, :path => "", :path_names => { :sign_in => 'login', :sign_out
=> 'logout', :password => 'secret', :confirmation => 'verification', :unlock =>
'unblock', :registration => 'register', :sign_up => 'cmon_let_me_in' }
И http://localhost:3000/login отлично работает для меня
Но я включаю
= link_to 'sign_out', destroy_user_session_path, :method => :delete
в моем приложении .haml, после того, как я нажму на него, он говорит, что ни один маршрут не соответствует "/logout",
Зачем?
Пожалуйста, помогите мне.
Ответы
Ответ 1
У меня была почти идентичная проблема, и благодаря SO исправил ее довольно легко (ссылка на мой вопрос). Во-первых, убедитесь, что у вас есть <%= javascript_include_tag :defaults %>
в вашем файле макета "application.html.erb".
Затем в файле config → initializers → "devise.rb" убедитесь, что он говорит:
config.sign_out_via = :delete
и ваш код sign_out destroy_user_session_path, :method => :delete
должен работать.
Ответ 2
Немного поздно к этой вечеринке, но вот немного помощи от другого .
Укажите свой метод:
<%= link_to "sign out", destroy_user_session_path, method: :delete %>
Ответ 3
Установите config.sign_out_via = :get
в config/initializers/devise.rb
, чтобы использовать следующий код для вашей выписки.
<%= link_to "Sign Out", destroy_user_session_path %>