2016-09-29

ActiveAdmin触ってみた

Railsのお勉強シリーズ。今回は管理用の画面を簡単に作成できちゃうActive Adminを試してみます。 詳細な使い方はactiveadmin.infoはout of dateなのでgithubのdocを見ることになります。 今回は、Rubyは2.2.4、Railsは5系を使いました。

インストール

まずはGemfileに以下を記述してbundle installする
gem 'activeadmin', github: 'activeadmin'
gem 'inherited_resources', github: 'activeadmin/inherited_resources'
gem 'devise'

AdminUserというユーザモデルを使う場合は以下を実行

$ rails g active_admin:install

でマイグレーション+シード実行(初期Adminユーザ作成)

$ bundle exec rake db:migrate
$ bundle exec rake db:seed
$ bundle exec rails s

そうすると、http://localhost:3000/adminで管理画面のログイン画面が出てきます。

active_admin_login

初期Adminユーザのクレデンシャルは以下の通りです。

このままだとモデルのCRUDが出来ないので、以下のコマンドで各モデルの管理画面を設定します。
$ bundle exec rails g active_admin:resource {モデル名}

これだけでCRUDの管理画面が作成され、CSVやXML、JSON形式でのレコードのダウンロードが可能になります。また、レコードに任意のコメントを追加することも出来ます。

ハマりポイント

activeadminをインストールするときにバージョン指定しないと、エラーが発生してGemがインストールできません。
gem 'activeadmin'

エラーはこんな感じ↓

Your bundle requires gems that depend on each other, 
creating an infinite loop. Please remove gem 'meta_search' and try again.

また、Rails5使っている場合は以下もインストールしないとエラーになる

gem 'inherited_resources', github: 'activeadmin/inherited_resources'

こんなエラーが発生する↓

undler could not find compatible versions for gem "actionpack":
  In Gemfile:
    activeadmin was resolved to 1.0.0.pre4, which depends on
      formtastic (~> 3.1) was resolved to 3.1.4, which depends on
        actionpack (>= 3.2.13)

    activeadmin was resolved to 1.0.0.pre4, which depends on
      inherited_resources (~> 1.6) was resolved to 1.6.0, which depends on
        actionpack (< 5, >= 3.2)

    activeadmin was resolved to 1.0.0.pre4, which depends on
      kaminari (~> 0.15) was resolved to 0.17.0, which depends on
        actionpack (>= 3.0.0)

    rails (>= 5.0.0.1, ~> 5.0.0) was resolved to 5.0.0.1, which depends on
      actionpack (= 5.0.0.1)

    rails (>= 5.0.0.1, ~> 5.0.0) was resolved to 5.0.0.1, which depends on
      actionpack (= 5.0.0.1)

    rails (>= 5.0.0.1, ~> 5.0.0) was resolved to 5.0.0.1, which depends on
      actionpack (= 5.0.0.1)

    rails (>= 5.0.0.1, ~> 5.0.0) was resolved to 5.0.0.1, which depends on
      actionpack (= 5.0.0.1)

    activeadmin was resolved to 1.0.0.pre4, which depends on
      ransack (~> 1.3) was resolved to 1.8.2, which depends on
        actionpack (>= 3.0)

    rails (>= 5.0.0.1, ~> 5.0.0) was resolved to 5.0.0.1, which depends on
      sprockets-rails (>= 2.0.0) was resolved to 3.2.0, which depends on
        actionpack (>= 4.0)

参考URL

このエントリーをはてなブックマークに追加