2016-06-26 86 views
0

所以我一直在創建我的webapp並遇到了Devise的問題。這是我的不同文件。路由錯誤:沒有路由匹配[GET]「/ users/sign_out」 - 設計4.1

devise.rb文件

config.sign_out_via = :delete 
config.sign_out_via = :get if Rails.env.test? 

index.html.erb文件

<li> 
    <%= link_to "Logout", destroy_user_session_path, :method => :delete %> 
</li> 

的routes.rb文件

devise_for :users do 
    get '/users/sign_out' => 'devise/sessions#destroy' 
end 

的問題是,如果我按 「退出」 上我的網絡應用程序,我立即得到:

No route matches [GET] "https://stackoverflow.com/users/sign_out" 

當我運行耙路線| grep destroy_user,這是響應。

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

不知道什麼是錯的。我該如何解決?我正在使用rails 4.2.1/devise 4.1.1。提前致謝。

回答

1

如果您在請求method: :delete時遇到錯誤,並且您看到Matches [GET],那麼加載UJS文件通常是一個問題。

確保application.js已正確打包,並且正在加載jQuery以及它需要正常運行的其餘Rails JavaScript。

0

我有同樣的問題。

//= require jquery 
//= require jquery_ujs 
//= require turbolinks 
//= require_tree . 

有了:我在application.js更換這個固定的問題

//= require jquery_ujs 
//= require jquery 
//= require turbolinks 
//= require_tree . 

這是簡單的:)

0

我有一個類似的問題 - 對我來說,我沒有加載jquery_ujs。 (我在引導程序的最新版本中遇到了一些js問題,決定從CDN中獲取所需的全部內容,將我的application.js註釋掉,其中引用了jquery_ujs。

相關問題