Railsで管理画面を作る際に便利なのが、ActiveAdmin。ただし、Rails4.1.1ではGemfileの設定に注意する必要がある。

ActiveAdminの準備

 今までのRailsでGemfileを書くときは、下記の2行を追記して『bundle install』を実行する。今回はdeviseを使うので、deviseのgemも記述。

gem 'activeadmin'
gem 'sass-rails'
gem 'devise'

 すると、以下のエラーが表示される可能性がある。(なければエラー解決の部分は読み飛ばしてください。)

$ bundle install
Fetching gem metadata from https://rubygems.org/.........
Fetching additional metadata from https://rubygems.org/..
Resolving dependencies....
Bundler could not find compatible versions for gem "activerecord":
  In Gemfile:
    activeadmin (>= 0) ruby depends on
      meta_search (>= 0.9.2) ruby depends on
        activerecord (~> 3.0.0.rc2) ruby

    rails (= 4.1.1) ruby depends on
      activerecord (4.1.1)

 『activerecord』のバージョンが合っていないと言われるので『activerecord』の設定を修正してもよいが、Stackoverflowによると、Rails4.1と4.0では下記のように記述して『bundle install』することが推奨されているようだ。

gem 'activeadmin', github: 'gregbell/active_admin'
gem 'devise'

 これでGemの設定が完了すると思われる。

RailsアプリにActiveAdminをインストール

 今度は実際に使うRailsアプリケーションでActiveAdminを有効にする。今回のdeviseの認証機能でユーザモデル名をUser以外にしたいので下記のようにした。(ちなみに、deviseを使いたくないときはオプションに–skip-usersをつける)

・ユーザモデル名を変えるとき

$ rails g active_admin:install [ユーザモデル名]

・ユーザモデル名をUserにするとき

$ rails g active_admin:install

・deviseの認証機能を使わないとき

$ rails g active_admin:install --skip-users

 完了したらマイグレーションする。

$ rake db:migrate

 これでとりあえず動くので、「http://localhost:3000/admin」にアクセスしてみよう。(deviseを使わない時は更に設定が必要となる)

スクリーンショット 2014-07-21 11.00.03

 初期のログインは下記のメールアドレスとパスワードでログインできるので、ログインしたらメールアドレスとパスワードを変更しよう。

Email:admin@example.com
Password:password

モデルのデータをActiveAdminの管理画面に表示する

 管理画面で見たいモデルを用意する。(すでにモデルを作ってあれば不要)

$ rails g model Article title content:text
$ rake db:migrate
$ rails g active_admin:resource Article

 これで管理画面にアクセスしてみると、Articleモデルの項目が表示されている。管理画面からデータを作成することができるが、そのためにはControllerでcreateメソッドを作らなければ作らないとデータを保存できないことに注意してください。

スクリーンショット 2014-07-21 14.40.09