###前提条件
- deviseでcosutomerログインできること
ターミナル
$ rails g devise Admin
$ rails db:migrate
adminでログインするユーザー作成する。
db/seeds.rb
Admin.create!(
email: 'admin@admin',
password: 'testtest'
)
ターミナル
$ rails db:seed
adminのユーザーデータが入っているか確認する。
ターミナル
$ rails c
$ irb(main):001:0> Admin.all
$ irb(main):002:0> exit
次はviewとcontrollerの作成します。
ターミナル
$ rails g devise:views admins
$ rails g devise:controllers admins
ルーティングを編集をします。
config/routes.rb
devise_for :admins
↓
devise_for :admins, controllers: {
sessions: 'admins/sessions'
}
ログイン後のヘッダー画面を追加します。
application.html.erb
<% if customer_signed_in? %>
<li>
<%= link_to "ログアウト", destroy_customer_session_path, method: :delete %>
</li>
<% elsif admin_signed_in? %>
<li>
<%= link_to "ログアウト", destroy_admin_session_path, method: :delete %>
</li>
<% else %>
<li>
<%= link_to "新規登録", new_customer_registration_path %>
</li>
<li>
<%= link_to "ログイン", new_customer_session_path %>
</li>
<% end %>
管理者のログイン後ページ遷移とログアウト先を作成します。
controllers/admins/sessions_contoller.rb
protected
def after_sign_in_path_for(resource)
admin_items_path
end
def after_sign_out_path_for(resource)
new_admin_session_path
end