Рельсы, ни один маршрут не выйдет из системы

Хотя есть много похожих вопросов, я искал его в течение нескольких часов, но по-прежнему не могу его исправить.

ко рельсы 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 %>