设计不识别路线

时间:2012-11-14 08:56:14

标签: ruby-on-rails devise

我正在使用设计进行身份验证,现在,我可以注册自动登录的用户。

但是,设计无法识别路径localhost:3000/users/sign_out

它出错

No route matches [GET] "/users/sign_out"

在我的路由中,我为用户创建了devise_for:users语句。

我也在我的用户模型中设置好了,user.rb如下

class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable
attr_accessible :email, :password, :password_confirmation, :remember_me
end

我的佣金路线显示以下内容

destroy_user_session DELETE /users/sign_out(.:format)      devise/sessions#destroy

任何人都知道为什么我的网址路径无法被识别

1 个答案:

答案 0 :(得分:0)

这是因为路由需要DELETE HTTP操作而不是GET操作。

destroy_user_session 删除 /users/sign_out(.:format)设计/会话#stroy

通过在浏览器中输入URL,您将向该URL发送GET操作。

为了使设计接受对devise.rb中sign_out路由更改的GET操作:

config.sign_out_via = :delete

to 

config.sign_out_via = :get

另一种方法是在视图中为链接添加:method => :delete,这样就可以像Devise期望的那样将DELETE操作发送到您的服务器。