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

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

Env rails 3.0.9 ruby​​ 1.9.2 devise 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 

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

我有一个几乎相同的问题,并且由于SO很容易修复它( 链接到我的问题 )。 首先,确保您的布局文件“application.html.erb”中有<%= javascript_include_tag :defaults %>

然后,在你的config – > initializers – >“devise.rb”文件中确保它说:

config.sign_out_via = :delete

和你的“sign_out”代码destroy_user_session_path, :method => :delete应该工作。

这个派对有点晚了,但是从另一个答案中得到了一些帮助

指定您的方法:

 <%= link_to "sign out", destroy_user_session_path, method: :delete %> 

设置config.sign_out_via = :get in config/initializers/devise.rb以使用以下代码进行注销链接。

 <%= link_to "Sign Out", destroy_user_session_path %>