虽然有很多类似的问题,但我已经搜索了好几个小时但仍然无法修复它。
的Env rails 3.0.9 红宝石1.9.2 设计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' }
http://localhost:3000/login对我来说很好 但我包括
= link_to 'sign_out', destroy_user_session_path, :method => :delete
在我的application.haml中,点击它后,它表示没有路由匹配“/ logout” 为什么? 请帮帮我。
答案 0 :(得分:11)
我有一个几乎相同的问题,并且由于SO很容易修复它(link to my question)。首先,请确保您的布局文件“application.html.erb”中有<%= javascript_include_tag :defaults %>
。
然后,在您的配置中 - &gt;初始化程序 - &gt; “devise.rb”文件确保它说:
config.sign_out_via = :delete
并且您的“sign_out”代码destroy_user_session_path, :method => :delete
应该有效。
答案 1 :(得分:5)
这个派对有点晚了,但是这里有来自另一个answer
的帮助指定您的方法:
<%= link_to "sign out", destroy_user_session_path, method: :delete %>
答案 2 :(得分:4)
在config.sign_out_via = :get
设置config/initializers/devise.rb
以使用以下代码进行退出链接。
<%= link_to "Sign Out", destroy_user_session_path %>