この問題については、さまざまなサイトで数十の質問があります。私は多くのことを試しましたが、私はまだDELETEメソッドを使ってリンクを作ることができません。Deviles gemを使用してRailsアプリでサインアウトできません。/ users/sign_outに一致するルートはありません
- 工夫2.0.4
- レール:3.2.2
- ルビー:
私は、空のRailsアプリケーションに
バージョンを作成しました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, :method => 'delete' %>
<%= link_to "Sign out", destroy_user_session_path, :method => :delete %>
を追加しました:
<%= link_to "Sign out", destroy_user_session_path %>
私はダニで、それらなしでdeleteメソッドを追加this to application.html.erb:
<%= javascript_include_tag :defaults %>
私は資産/ JavaScriptの/ application.jsに次の行をコメント解除:、私も仕事にGETリンクを取得しようとした
= require jquery
= require jquery_ujs
を設定/初期化子/ devise.rb
config.sign_out_via = : delete
からこの行を変更どんなに私がしようとするもの
config.sign_out_via = :get if Rails.env.test?
、リンクはこの結果にDELETE:これまで
No route matches [GET] "https://stackoverflow.com/users/sign_out"
GETリンクは同様に動作しません。
Noルートの一致を "/"
[GET]を、私はもちろん、サーバを再起動しようとしています。
レーキルートはこれを含んでいます。事前に
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
感謝を。
ストレート単純な答えを設定してみてください。私はHerokuを使いました:GETして、生産(Heroku)でコードを中断させるので、 ':get'に変更するのではなく、両方の要求を処理できるようにリストを設定しなければなりませんでした。 .sign_out_via =:delete、:get'そしてそれは私のために働いた。 –