教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。
その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。
本パートでは、プロフィールページからログアウトができるようにログアウトリンクの実装をします。
まず、ログアウトのルーティングを確認します。rails routes
を実行してください。
console Copied!rails routes
上記のコマンドを実行すると、ルーティングの一覧が表示されます。下記のようにパスがusers/sign_out
のルーティングが表示されます。これがログアウトのルーティングです。
Copied!destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
実装する際は、link_to
メソッドに名前付きヘルパーであるdestroy_user_session
に_path
をつけると良さそうですね。
それでは、users/show.html.erb
を以下のように編集してください。
app/views/users/show.html.erb1234567891011121314 Copied!<%# 中略 %>
<% if current_user.id == @user.id %>
<div class="user-action">
<div class="user-action-common">
<%# この行を編集する %>
<%= link_to destroy_user_session_path, method: :delete do %>
<i class="fas fa-sign-out-alt fa-2x"></i>
<% end %>
<span>ログアウト</span>
<%# 中略 %>
ログアウトの場合、rails routes
の結果から分かるように、HTTPメソッドがDELETE
と書いてあります。なので、link_to
にもmedhod: :delete
という記述を書く必要があります。
それでは、プロフィールページでログアウトができるか確かめてください。
以上で5章は終了です。
お疲れさまでした。