LIFE

deviseでAdminアカウントを追加する【いせ日記】









今日からプログラミング学習内容や日々の出来事などを定期的に書いていこうと思います!

今日はECサイトのAdminのアカウントを作成していきます。

この記事はあくまでも私の日記ですので、プログラミング作業の流れをなどをなんとなく書いていこうかなと思います。

今回やること
・Adminアカウントでログインを可能にする
・Admin がログインしたら /admins という Admin がログインしないと見れないページ(ダッシュボード)にリダイレクトする
・AdminアカウントはRails consoleからしか作成できないようにする
 (勝手に利用者が登録できないようにする)
・Admin画面で商品を登録できるようにする

作業手順

devise:Adminの追加

まずは管理者アカウントのadminを追加していきます。

$rails g devise Admin
$rails db:migrate
Rails.application.routes.draw do
devise_for :admins
devise_for :users

ルーティングにdevise_for :adminsが自動的に追加されました。

class Admin < ApplicationRecord
  devise :database_authenticatable, 
         :recoverable, :rememberable, :validatable
end

Adminモデルにもこんな感じで追加されてました。今回はconsoleからしか登録できないようにしたいので、:registerableは消しちゃいます。

それではアカウントを作成しようと思います!

Admin.create!(
    email: 'test@test.com',
    password: '******',
)
$ rails db:seed

rails cで実際にアカウントが作られているのかどうかをみてみましょう!

$ rails c
2.5.3 :001 > Admin.all
 => #<ActiveRecord::Relation [#<Admin id: 1, email: "test@test.com", created_at: "2020-10-08 14:32:06", updated_at: "2020-10-08 14:32:06">]> 

無事に作られたようですね。

ルーティング

それではルーティングを作っていきましょう!

  namespace :admins do
    root "toppages#index"
  end
admin_root GET  /admins(.:format) admins/toppages#index

これで/adminsのというURLが完成しました。次に、controllerviewsを設定していこうと思います。

コントローラーとビューの作成

$rails g controller admins/toppages index
class Admins::ApplicationController < ApplicationController
end

新しくadmins/application_controller.rbというファイルを作成します。ディレクトリがadminsのため、上記のようにAdmins::と名前空間を追加します。

class Admins::ToppagesController < Admin::ApplicationController
  def index
  end
end

そしたらtop_controller.rbにもAdmin::を追加します。

いせ日記:まとめ

ちょっと中途半端ですが、今日はここまでにします!

明日はAdminアカウントのトップページを作って、商品登録出来るように頑張りたいと思います。

今日の勉強時間:朝1時間 夜3時間

今日は4時間勉強しましたが、やっぱりまだ調べる作業に時間が多く取られてしまいました。。

調べる時間:2時間 プログラミングしながらブログ書く:2時間

ブログ書くのは大変ですが、ブログ書いていると頭の中が整理されるのですごく勉強になりますね。

毎日こんな感じで書いていきますので、よろしくお願いします。

最後まで読んで頂きありがとうございました。

-LIFE

Copyright © Iseblog ,@2020 All Rights Reserved.