読者です 読者をやめる 読者になる 読者になる

Deviseのサインアウト処理でNo route matches [GET] "/users/sign_out"となる問題の解決

Rails

Rails 3.1.0とDevise 1.4.4で認証機能を実装していたのですが、サインアウト処理をしようとすると、以下のエラーがブラウザに表示されました。

No route matches [GET] "/users/sign_out"

サインアウトのためのリンクは、以下のコード生成しています。

<%= link_to "Sign Out", destroy_user_session_path, :method => :delete %>

このコードはRails 3.0.9では正常に動作しています。

Rails 3.1.0で動作させるために、config/initializers/devise.rbのconfig.sign_out_viaの値を変更しました。

config.sign_out_via = :get

とりあえず、これでサインアウトできるようになりました。

参考:Deploying Rails 3.1 on Heroku Cedar with Rails Admin

2011年9月9日追記:JavaScriptを読み込むようにしたところ、以前のままで正常に動作するようになりました。