🍎
【Rails】deviseのログアウト実装
はじめに
deviseを使って認証機能を実装します。
- devise導入済み
- ユーザー名でサインアップできるようにnameカラム追加済み
- サインアップページにname用のフォーム追加済み
- 下記の続きです!
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