rails设计,没有路由匹配注销

lhd*_*ver 11 routes ruby-on-rails logout devise

虽然有很多类似的问题,但我已经搜索了好几个小时但仍无法修复它.

Env rails 3.0.9 ruby​​ 1.9.2 devise 1.4.2

我使用以下命令更改了默认登录网址:

 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' }
Run Code Online (Sandbox Code Playgroud)

并且http:// localhost:3000/login对我来说很好但是我包含了

 = link_to 'sign_out', destroy_user_session_path, :method => :delete
Run Code Online (Sandbox Code Playgroud)

在我的application.haml中,点击它后,它说没有路由匹配"/ logout"为什么?请帮我.

vic*_*ich 11

我有一个几乎相同的问题,并且由于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应该有效.


jah*_*hie 5

这个派对有点晚了,但是这里有一些来自另一个答案的帮助

指定您的方法:

<%= link_to "sign out", destroy_user_session_path, method: :delete %>
Run Code Online (Sandbox Code Playgroud)