我知道在不同網站上有關於此問題的數十個問題。我嘗試了很多東西,但仍然無法使用DELETE方法工作。無法登出Rails應用程序,使用Devise gem,無路線匹配/ users/sign_out
我創建了一個空的Rails應用程序
版本:
- 色器件2.0.4
- 導軌:3.2.2
- 紅寶石:1.9.2
- RVM:1.10 .3
當我安裝了devise gem後,我跑了這些c ommands:
rails generate devise:install
rails generate devise User
修復我已經試過低於:
初始鏈接:
<%= link_to "Sign out", destroy_user_session_path %>
我添加了刪除方法,蜱,沒有他們:
<%= link_to "Sign out", destroy_user_session_path, :method => 'delete' %>
<%= link_to "Sign out", destroy_user_session_path, :method => :delete %>
添加這到application.html.erb:
<%= javascript_include_tag :defaults %>
我註釋掉的資產/ JavaScript的/ application.js中這些行:
= require jquery
= require jquery_ujs
我也試圖得到GET環節的工作,從配置/初始化/ devise.rb
config.sign_out_via = : delete
改變了這一行
這樣:
config.sign_out_via = :get if Rails.env.test?
無論我怎麼努力,刪除鏈接導致此:
No route matches [GET] "https://stackoverflow.com/users/sign_out"
GET鏈接不工作,以及:
沒有路由匹配[GET] 「/」
我試圖重新啓動服務器,當然。
耙路線包含此:提前
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
感謝。
直簡單的答案。我已經找到了Heroku:GET,並使得代碼在生產(Heroku)上中斷,所以不必將其更改爲':get',而必須將它們設置爲可以處理這兩個請求的列表,然後使用'config .sign_out_via =:刪除,:get',併爲我工作。 – 2016-10-13 12:42:30