日曜ITエンジニア劇場

日曜に勉強した情報の整理と、挑戦する新たな技術(私にとって)のつまづきポイントを綴っていきます。

ActiveAdmin/導入からデフォルト状態で実行まで


参考資料

1.公式サイト

activeadmin.info

2.作業手順の参考

qiita.com
ありがとうございます!分かりやすかったです🙇🏻‍♀️
次回も、お世話になります🙇🏻‍♀️🙇🏻‍♀️

環境

$ sw_vers  
ProductName:    Mac OS X  
ProductVersion: 10.15.4  
$ sqlite3 -version  
3.28.0    
$ ruby -v  
ruby 2.6.2p47 (2019-03-13 revision 67232) [x86_64-darwin19]  
$ rails -v  
Rails 6.0.3.1  

手順

※1.と2.は通常のRailsプロジェクトの作成および準備手順。
自分向けに何度もあっちこっちで記述しています。
「これぐらい、知ってますがなー🤨」 という方は、
手順3からどうぞ💁‍♀️

1.プロジェクトを生成する

$ rails new recipes_admin  

2.gitの初期化(ローカル設定)

2−1.Github等の使用するサイトでリポジトリを作成する

2−2.remote.origin.urlの設定

Bitbucketまたはgithubのクローンの作成でremote.origin.url[※1]をコピーする。

cd [該当プロジェクトのパス]  
git remote add origin git@[※1]  

設定を確認する。

$ git config --local remote.origin.url  
git@bitbucket.org:xxxx.git  

2−3.gitの初期化

$git init

3.GemfileにActiveAdmin関連のGemを追記

# ActiveAdmin  
gem 'devise'  
gem 'activeadmin'  

4.3.のGemをインストール

$ bundle install  

5.ActiveAdminのコアファイルを生成する。

※下記デフォルトで実行したが、参考資料1.は他に
Deviseを使用したくない場合既存のユーザークラスを使用する場合がある。

$ rails g active_admin:install  
Running via Spring preloader in process 7958  
      invoke  devise  
    generate    devise:install  
      create    config/initializers/devise.rb  
      create    config/locales/devise.en.yml  
  ===============================================================================  
  
Some setup you must do manually if you haven't yet:  
  
  1. Ensure you have defined default url options in your environments files. Here  
     is an example of default_url_options appropriate for a development environment  
     in config/environments/development.rb:  
  
       config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }  
  
     In production, :host should be set to the actual host of your application.  
  
  2. Ensure you have defined root_url to *something* in your config/routes.rb.  
     For example:  
  
       root to: "home#index"  
  
  3. Ensure you have flash messages in app/views/layouts/application.html.erb.  
     For example:  
  
       <p class="notice"><%= notice %></p>  
       <p class="alert"><%= alert %></p>  
  
  4. You can copy Devise views (for customization) to your app by running:  
  
       rails g devise:views  
  
===============================================================================  
      invoke    active_record  
      create      db/migrate/20200525092740_devise_create_admin_users.rb  
      create      app/models/admin_user.rb  
      invoke      test_unit  
      create        test/models/admin_user_test.rb  
      create        test/fixtures/admin_users.yml  
      insert      app/models/admin_user.rb  
       route    devise_for :admin_users  
        gsub    app/models/admin_user.rb  
        gsub    config/routes.rb  
      append    db/seeds.rb  
      create  config/initializers/active_admin.rb  
      create  app/admin  
      create  app/admin/dashboard.rb  
      create  app/admin/admin_users.rb  
      insert  config/routes.rb  
    generate  active_admin:assets  
       rails  generate active_admin:assets  
Running via Spring preloader in process 7984  
      create  app/assets/javascripts/active_admin.js  
      create  app/assets/stylesheets/active_admin.scss  
      create  db/migrate/20200525092753_create_active_admin_comments.rb  

6.5.で生成されたデフォルトのマイグレーションファイルをDBに反映する。

6−1.ActiveAdminのデフォルトのテーブル作成

$ rails db:migrate  
== 20200525092740 DeviseCreateAdminUsers: migrating ===========================  
-- create_table(:admin_users)  
   -> 0.0033s  
-- add_index(:admin_users, :email, {:unique=>true})  
   -> 0.0016s  
-- add_index(:admin_users, :reset_password_token, {:unique=>true})  
   -> 0.0026s  
== 20200525092740 DeviseCreateAdminUsers: migrated (0.0078s) ==================  
  
== 20200525092753 CreateActiveAdminComments: migrating ========================  
-- create_table(:active_admin_comments)  
   -> 0.0087s  
-- add_index(:active_admin_comments, [:namespace])  
   -> 0.0061s  
== 20200525092753 CreateActiveAdminComments: migrated (0.0154s) ===============  

6−2.ActiveAdminのUserテーブルに初期値を登録する。(db/seeds.rb)

$ rails db:seed  

上記のデータを確認してみる。

$ rails c  
Running via Spring preloader in process 8217  
Loading development environment (Rails 6.0.3.1)  
irb(main):002:0> AdminUser.all  
   (2.6ms)  SELECT sqlite_version(*)  
  AdminUser Load (1.5ms)  SELECT "admin_users".* FROM "admin_users" LIMIT ?  [["LIMIT", 11]]  
=> #<ActiveRecord::Relation [#<AdminUser id: 1, email: "admin@example.com", created_at: "2020-05-25 09:37:41", updated_at: "2020-05-25 09:37:41">]>  

入ってます👌

7.ブラウザで確認する。

7−1.いつも通りコンソールでサーバー起動。

$ rails s  

7−2.ブラウザを起動して、下記にアクセス。

http://localhost:3000/admin  

f:id:kuroneko-r011117:20200525192219p:plain
ActiveAdmin_ログイン画面

7−3.デフォルトのアカウントでログインする。

User: admin@example.com  
Password: password  

【おまけ】ログイン後の画面はこちら↓

f:id:kuroneko-r011117:20200525192439p:plain
ActiveAdminログイン直後
f:id:kuroneko-r011117:20200525192619p:plain
ActiveAdminデフォルトのUser管理画面