我正在使用设计进行身份验证,现在,我可以注册自动登录的用户。
但是,设计无法识别路径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
任何人都知道为什么我的网址路径无法被识别
答案 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操作发送到您的服务器。