🤖

管理者ログイン

2024/01/15に公開

はじめに

今日は管理者側でログインする方法を記載します。

実装方法

まず、管理者テーブルを作成します。

rails g devise Admin

次にログインするユーサーを作成します。

Admin.create!(
   email: 'admin@admin',
   password: 'testtest'
)

rails db:seedを忘れずに

ここでrails cでユーザーデータが入っているか確認します。

~>Admin.all
(ユーザーデータ)
~>exit

続いてviewとcontrollerの編集を行います。

$rails g devise:views admins
$rails g devise:controllers admins

次にルーティングの編集です。

devise_for :admins, controllers: {
  sessions: 'admins/sessions'
}

ログイン後のヘッダー画面を追加します。

application.html.erb
<% if customer_signed_in? %>
 <li>
  <%= link_to "ログアウト", destroy_user_session_path, method: :delete %>
 </li>
<% elsif admin_signed_in? %>
 <li>
  <%= link_to "ログアウト", destroy_admin_session_path, method: :delete %>
 </li>
<% else %>
 <li>
  <%= link_to "新規登録", new_user_registration_path %>
 </li>
 <li>
  <%= link_to "ログイン", new_user_session_path %>
 </li>
<% end %>

最後にログイン後の変異先を追加します。

protected
  def after_sign_in_path_for(resource)
    admin_posts_path
  end

  def after_sign_out_path_for(resource)
    new_admin_session_path
  end

終わりに

自身のメモ程度ですが、至らぬ点やここわからんってことがありましたらコメントで教えていただくと幸いです。

Discussion