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

时间:2011-07-24 17:32:50

标签: ruby-on-rails devise logout routes

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

的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” 为什么? 请帮帮我。

3 个答案:

答案 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 %>