2016-06-26 5 views
0

私はwebappを作成していて、Deviseの問題に遭遇しました。ここに私の別のファイルがあります。ルーティングエラー:[GET] "/ users/sign_out"と一致するルートはありません - Devise 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 

問題であることを私が押した場合は、 "ログアウト" に私のwebapp、私はすぐに得る:

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

rake routesを実行すると、 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

私は同じ問題がありました。私にとって、それは私がいなかったということだった - それは、単純な:)

0

私は同様の問題を持っていたことだった

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

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

で:私はapplication.jsでこれを置き換えることによって、問題を修正しましたjquery_ujsはまったくロードされていません。 (私はブートストラップの最新バージョンでjsにいくつかの問題があり、CDNから必要なものすべてを手に入れようと決めました。jquery_ujsへの参照を持っているapplication.jsをコメントアウトしました。

関連する問題