はじめての active_admin 【インストール編】
はじめに
いつもは devise と twitter bootstrap を使って、カスタマイズしやすい用に自分で管理画面を作ってました。
しかし、周りの人達の評判も悪くなく rails4 の対応もほぼほぼできてるそうなので active_admin を使ってみる事にしました。
これから何回かに分けてactive_adminのブログを書いていこうと思います。
実行環境
- rails4
- ruby: 2.0.0-p247
gem のインストール
rails4 へ対応したバージョンは まだ rubygems にあがってないので githubの master から インストールするようにと公式にかいてあるので、
Gemfile に下記を記入します
gem 'activeadmin', github: 'gregbell/active_admin'
active adminのインストール
今回は公式ドキュメントにそって設定していきたいと思います。
./bin/rails g active_admin:install
invoke devise
generate devise:install
create config/initializers/devise.rb
create config/locales/devise.en.yml
===============================================================================
Some setup you must do manually if you haven't yet:
1. Ensure you have defined default url options in your environments files. Here
is an example of default_url_options appropriate for a development environment
in config/environments/development.rb:
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
In production, :host should be set to the actual host of your application.
2. Ensure you have defined root_url to *something* in your config/routes.rb.
For example:
root :to => "home#index"
3. Ensure you have flash messages in app/views/layouts/application.html.erb.
For example:
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
4. If you are deploying on Heroku with Rails 3.2 only, you may want to set:
config.assets.initialize_on_precompile = false
On config/application.rb forcing your application to not access the DB
or load models when precompiling your assets.
5. You can copy Devise views (for customization) to your app by running:
rails g devise:views
===============================================================================
invoke active_record
create db/migrate/20131119090403_devise_create_admin_users.rb
create app/models/admin_user.rb
invoke rspec
create spec/models/admin_user_spec.rb
insert app/models/admin_user.rb
route devise_for :admin_users
gsub app/models/admin_user.rb
gsub config/routes.rb
insert db/migrate/20131119090403_devise_create_admin_users.rb
create config/initializers/active_admin.rb
create app/admin
create app/admin/dashboard.rb
create app/admin/admin_user.rb
insert config/routes.rb
generate active_admin:assets
create app/assets/javascripts/active_admin.js.coffee
create app/assets/stylesheets/active_admin.css.scss
create db/migrate/20131119090411_create_active_admin_comments.rb
こんな感じで必要なファイルがインストールされます。
すでに存在している Userモデル を使う時は
rails g active_admin:install User
でいけるらしい。
今回は、UserモデルとAdminUserモデルは切り離したいのでデフォルトでいきます。
また、active_admin側で認証はせずに別の方法(Basic認証、IP制限 など)でするから認証はいらない という場合は
rails g active_admin:install --skip-users
と —skip-users オプションをつけるといいらしいです。
migration
migrationファイルが追加されたので
./bin/rake db:migrate
を実行します。
確認
./bin/rails s
でrails サーバーを起動し、 /admin にアクセスします。

このようなページがでればOKです。
- User: admin@example.com
- Password: password
というユーザーがデフォルトで用意されているので ログインしてみます。 ログインすると

このようなページがでてきます。
簡単に管理画面ができました。
カスタマイズは後日修正したものを細々とまとめていきたいと思います。
最後に
#{date}_devise_create_admin_users.rb で admin@example.com ユーザーを生成
している部分はセキュリティ的にも手元で確認できたらコメントアウトして、
本番で反映しないようにした方がいいと思います。
