【Rails3】deviseでログイン中は「Sign out」を表示して、ログアウトする
(環境:Mac OS X Leopard, Ruby1.9.2, Rails3.1.1)
【Rails3】deviseでユーザー認証機能の追加と設定の続き(機能追加)です。
ログイン中は「Sign out」を表示して、クリックしたらログアウト出来るようにしたいと思います。
app/views/layouts/application.html.erbへ以下を追加
<% if user_signed_in?%>
Signed in as <%= current_user.email %>. Not you? <%= link_to "Sign out", destroy_user_session_path %> <% end %>
出てきたSign outというリンクをクリックするとRouting Errorになりました。
No route matches [GET] "/users/sign_out"
$ rake routes
で確認してみます。
(省略)
destroy_user_session DELETE /users/sign_out(.:format) {:action=>"destroy", :controller=>"devise/sessions"}
(省略)
どうやらGETではなく、DELETEというHTTPメソッドで渡さなければならないみたいです。
これには:method => :deleteを追加すれば良いみたいです。
<% if user_signed_in?%>
Signed in as <%= current_user.email %>. Not you? <%= link_to "Sign out", destroy_user_session_path, :method => :delete %> <% end %>
今度はログアウトできました。
# ####
# ### At Bat Web Studio 出水ベースのWeb屋
# ## サイバーまめカン ストックメディア
# #