ActiveAdminでRails管理画面を作成

Rails の管理画面用 gem としては、Active Admin と Rails Admin の2つが有名です。両方試そうと思いますが、まずは ActiveAdmin から試してみました。

— 環境 —
rails 5.0.0.1
activeadmin 1.0.0

【追記 2016/11/18】
Rails 5 環境での active admin インストールと設置を検証してみましたので、それについて追記を行いました。以下見出しの「Rails 5 での ActiveAdmin インストールと設置」のパラグラフです。
【追記ここまで】

スポンサーリンク

Rails 5 での ActiveAdmin インストールと設置

Rails 5 環境での ActiveAdmin のインストールと設置方法です。基本的に、以下 GitHub の公式ドキュメントを参考にしています。

https://github.com/activeadmin/activeadmin
https://github.com/activeadmin/activeadmin/blob/master/docs/0-installation.md

まずは、Gemfile に以下を追記する。

Gemfile

ActiveAdmin Gem をインストール。

ActiveAdmin 本体をインストールして、必要なファイルを生成する。

上記のように Active Admin 関連のファイルが生成されました。

続いて、db/seeds.rb に追記された、管理者ユーザー作成のコードでEメールアドレスとパスワードを編集します。

db/seeds.rb

マイグレーション実行と db:seed 実行。

サーバー起動。

http://localhost:3000/admin から ActiveAdmin の管理画面にログインできます。

production 環境では Capistrano で db:seed を実行するようにしました。Capistrano の config/deploy.rb に db:seed 用のタスクを作成します。

config/deploy.rb

デプロイ後に db_seed タスクを実行する。

ActiveAdmin で管理するモデルを追加する。

User モデルを管理対象に追加する場合。

以上ここまでが Rails 5 における ActiveAdmin のインストールと設置方法でした。エラー対策などは記事末尾に記載したものと同様です。

Rails 4.1 での ActiveAdmin インストール

以降の内容は、記事初回公開時の Rails 4.1 環境による検証です。

— 環境 —
rails 4.1
devise 3.2.2
activeadmin 1.0.0

gregbell/active_admin

Gemfile に activeadmin を追加して bundle install

Gemfile

active_admin を install

これで、admin_users用とactive_admin_comments用の2つのマイグレーションファイルが作成されますが、なぜか管理者用テーブル(admin_users)用のマイグレーションファイルが .rb の拡張子なしで作成されていたので手動で修正。.rb なしのファイルはマイグレーション実行でスキップされてしまいますので。

マイグレーション実行。

webrick 再起動。

管理者ユーザーを作成して管理画面にログイン

http://localhost:3000/admin にアクセスするとログイン画面が表示されます。

Github の Readme には、以下の初期ユーザーとパスワードでログインできると書いてありましたが、私の環境では管理者用の初期ユーザーが自動では作成されませんでした。

User: admin@example.com
Password: password

なので、コンソールから管理者アカウントを作成しました。

管理者アカウントでログイン後、http://localhost:3000/admin にてダッシュボードを確認できます。

管理対象のモデルを追加

管理するモデルを追加、ここでは User モデルを管理対象にします。

これで、ダッシュボード上部メニューに”ユーザー”という項目が追加され、User モデルの管理が可能となります。

エラー対策など

will_paginate を使っている場合、User モデルの管理画面(http://localhost:3000/admin/users)にアクセスしようとすると、以下のエラーが発生します。

これは、will_paginate と active_admin が依存している kaminari が conflict するのが原因です。その解消のために以下を作成。

config/initializers/kaminari.rb

またもう一つ。ActiveAdmin の CSS が Rails アプリケーション全体で有効になってしまいます。これを防ぐために以下を実行して、active_admin.css.scss を vendor/assets/stylesheets 以下に移動させておきます。

以上ですが、比較的簡単に active_admin を導入できました。

スポンサーリンク
パーフェクト Ruby on Rails は、最近読んだ Rails 本の中では一番役に立った本です。Chef や Capistrano など Rails と共によく使用される技術にも触れてあります。Ruby on Rails 4 アプリケーションプログラミングは、入門的な内容で Rails の機能全体を網羅されています。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!