我有一个Rails 4应用程序,我正在使用Devise。一切都设置正确,我只是对URL和链接有疑问。
我的设计模型被称为“客户”。当我导航到/ clients / sign_out(即我在地址栏中输入)时,我收到以下错误:
No route matches [GET] "/clients/sign_out"
现在,我理解为什么我收到此错误 - 链接是DELETE,而不是GET。
显然,退出的一种方法是使用此链接:
= link_to "Log Out", destroy_client_session_path, method: :delete
(即haml,btw)。
但是,我正在寻找一个URL来输入地址栏,这将有效地进行DELETE,而不是GET调用。这更像是一个可能性问题,而不是一个实用性问题 - 我很欣赏任何有关此问题的见解!
谢谢!
答案 0 :(得分:1)
无法在地址栏中输入URL并让它执行DELETE请求。如果您想通过访问网址销毁会话,可以将config/initializers/devise.rb
中的以下设计配置更改为以下
config.sign_out_via = :get
请注意,此方法不是RESTful,因为POST
和更改状态时应使用DELETE
。