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で管理画面のログイン画面が出てきます。
初期Adminユーザのクレデンシャルは以下の通りです。
- 初期ID:admin@example.com
- パスワード:password
$ 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)