Edited at

[rails5.2] Active Adminの導入

More than 1 year has passed since last update.

Active Adminを利用してみました。導入手順を残しておこうと思います。


環境

Rails
5.2.0

ruby
2.5.1

mysql
5.7.20


 まず


Gemfile

gem 'activeadmin'


※deviseはすでにインストール済みです


Install

管理ユーザーのモデルを今回は「ActiveAccount」として作成したいと思います。

$ bundle install

$ bin/rails g active_admin:install --skip-users # オプションはadminuserを作成しない
create config/initializers/active_admin.rb
create app/admin
create app/admin/dashboard.rb
route ActiveAdmin.routes(self)
generate active_admin:assets
identical app/assets/javascripts/active_admin.js.coffee
identical app/assets/stylesheets/active_admin.scss
create db/migrate/20180518132718_create_active_admin_comments.rb

# 管理ユーザーのモデルの作成
$ bin/rails g active_admin:install AdminAccount
invoke devise
generate No need to install devise, already done.
invoke active_record
create db/migrate/20180518133149_devise_create_admin_accounts.rb
create app/models/admin_account.rb
invoke rspec
create spec/models/admin_account_spec.rb
invoke factory_bot
create spec/factories/admin_accounts.rb
insert app/models/admin_account.rb
route devise_for :admin_accounts
gsub app/models/admin_account.rb
gsub config/routes.rb
append db/seeds.rb
conflict config/initializers/active_admin.rb
Overwrite /Users/sakai/sakaibox/railsApps/blog/config/initializers/active_admin.rb? (enter "h" for help) [Ynaqdh] n #active_admin.rbは上書きしない
skip config/initializers/active_admin.rb
exist app/admin
identical app/admin/dashboard.rb
create app/admin/admin_accounts.rb
insert config/routes.rb
generate active_admin:assets
identical app/assets/javascripts/active_admin.js.coffee
identical app/assets/stylesheets/active_admin.scss
identical db/migrate/20180518132718_create_active_admin_comments.rb


ActiveAdminの設定ファイルを変更

今回は管理者ユーザーモデルを「AdminAccount」として作成しているので

下記のように修正します。


config/initializers/active_admin.rb

- config.authentication_method = :authenticate_admin_user!

+ config.authentication_method = :authenticate_admin_account!
- config.current_user_method = :current_admin_user
+ config.current_user_method = :current_admin_account
- config.logout_link_path = :destroy_admin_user_session_path
+ config.logout_link_path = :destroy_admin_account_session_path


管理画面のURLの変更

デフォルトでの管理画面のURLは admin/xxx(admin/login、admin/logout等)に設定されているが

下記で変更可能です。


config/initializers/active_admin.rb

# config.default_namespace = :admin

config.default_namespace = :admin_login

# 確認

$ bin/rake routes

$ bin/rake db:migrate

# db/seeds.rbのデフォルトのユーザの記載があるので管理ユーザーを作成します。
$ bin/rake db:seed


確認

$ bin/rails s

http://localhost:3000/admin_login/login


参考

Active Admin

Railsで最速で管理画面を作る!