管理者権限付与後、本番環境にrails db:seedをするまで(Active Storageも含む)


はじめに

管理者権限の付与方法については以下記事に記載しております。

前提

●管理者権限機能は実装済み

●usersテーブルの情報

XXX_devise_create_users.rb

〜省略〜

      t.string  :email,                null: false, default: ""
      t.string  :encrypted_password,   null: false, default: ""
      t.string  :nickname,             null: false
      t.text    :occupation,           null: false
      t.text    :position,             null: false
      t.date    :birth_day,            null: false
      t.integer :sex_id,               null: false
      t.boolean :admin,                default: false

〜省略〜

バージョン

rubyのバージョン ruby-2.6.5
Railsのバージョン Rails:6.0.0

gemについて

・gem 'devise'
・gem 'rails_admin', '~> 2.0.0.beta'
・gem 'cancancan'

記事の内容

管理者についての情報をseeds.rbに記述し、本番環境にてseeds.rbの内容を
反映するまでの手順を述べています。

実装の全体像

●ローカル環境
①seeds.rbの記述
②rails db:seedの実行

●gitにてマージ

●本番環境
④デプロイ
⑤heroku run rails db:seedの実行

実装の手順

①seeds.rbの記述

Active Storageでimageカラムを取り込んでいるので、usersテーブルにimageカラムをattachする。
※seeds.rb内の一番下の記述
(なお画像についてはimageカラムと定義している。)

db.seeds.rb

user = User.create!(email: "[email protected]",
  password:  "abcd1234",
  password_confirmation: "abcd1234",
  nickname:  "管理者",
  occupation: "管理者",
  position: "管理者",
  birth_day: "2000-10-10",
  sex_id: "2",
  admin: true)

  user.image.attach(io: File.open(Rails.root.join("app/assets/images/homekatajiten.png")), filename: "homekatajiten.png")

②rails db:seedの実行

rails db:seedを実行して初期データを投入する。

$ rails db:seed

③デプロイ

$ git push heroku master

④heroku run rails db:seedの実行

本番環境にもlocal同様の初期データを投入する。

$ heroku run rails db:seed

確認

最後は反映されているか確認を行う。

$ heroku open

実行できていれば管理者アカウントでログイン後、(本番環境URL)/adminで以下のような画面になっていれば成功です。

以上です。