カテゴリー
サインイン 新規登録

間違いや改善の指摘

内容の技術的な誤り・誤字脱字やミスのご報告・解説やトピックの追記/改善のご要望は教材をさらに良くしていく上でとても貴重なご意見になります。

少しでも気になった点があれば、ご遠慮なく投稿いただけると幸いです🙏

実際には誤りではなく勘違いであっても、ご報告いただけることで教材のブラッシュアップにつながります。

質問ポリシー①

教材受講者みなさんのスムーズな問題解決のために、心がけていただきたいことがあります。

教材の内容に関する質問を投稿しましょう

教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。

その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。

5-8

ログアウトリンクの実装

本パートでは、プロフィールページからログアウトができるようにログアウトリンクの実装をします。

ログアウトのリンクを追加

まず、ログアウトのルーティングを確認します。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.erb
1234567891011121314
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章は終了です。

お疲れさまでした。