🍎

【Rails】deviseのログアウト実装

2023/07/21に公開

はじめに

deviseを使って認証機能を実装します。

  • devise導入済み
  • ユーザー名でサインアップできるようにnameカラム追加済み
  • サインアップページにname用のフォーム追加済み
  • 下記の続きです!

https://zenn.dev/h_hana/articles/8dac18ed8732a4


1.ひとまずヘッダーを作成

ログアウト用のリンクは大体ヘッダーに設置されている!
ということで、ヘッダーを作成していきます。

app/views/layouts/application.html.erb
:
 <body>
    <header>
      <% if user_signed_in? %>
        <li>
          <%= link_to "ログアウト", destroy_user_session_path, method: :delete %>
        </li>
      <% else %>
        <li>
          <%= link_to "サインアップ", new_user_registration_path %>
        </li>
        <li>
          <%= link_to "ログイン", new_user_session_path %>
        </li>
      <% end %>
    </header>
    <%= yield %>
  </body>
:
:

2.ログアウト用のリンクを設置

1.で記述した内容について ↓

app/views/layouts/application.html.erb
<%= link_to "ログアウト", destroy_user_session_path, method: :delete %>

deviseを導入したことでログアウトの機能はすでに作成されているので、
リンクのみ作成すればOK!
ログアウトはHTTPメソッドが「DELETE」なので、指定する必要がある。
指定しないと「GET」となってしまうため。
app/views/layouts/application.html.erb
<% if user_signed_in? %>

deviseが用意しているヘルパーメソッド!
ログインしているか否かを判断し、表示させる内容を変更してくれる。
ログインしている場合は「ログアウト」を、
ログインしていない場合は「サインアップ」「ログイン」が表示される。

以上でログアウトができるようになりました!

続きます🙋

Discussion