はじめての 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 ユーザーを生成
している部分はセキュリティ的にも手元で確認できたらコメントアウトして、
本番で反映しないようにした方がいいと思います。