@Konboi memo

主に技術に関してつらつらと。

はじめての active_admin 【インストール編】

はじめに

いつもは devisetwitter 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 にアクセスします。

login

このようなページがでればOKです。

というユーザーがデフォルトで用意されているので ログインしてみます。 ログインすると

このようなページがでてきます。

簡単に管理画面ができました。

カスタマイズは後日修正したものを細々とまとめていきたいと思います。

最後に

#{date}_devise_create_admin_users.rb で admin@example.com ユーザーを生成 している部分はセキュリティ的にも手元で確認できたらコメントアウトして、 本番で反映しないようにした方がいいと思います。

Rails3レシピブック 190の技
高橋 征義 松田 明 諸橋 恭介
ソフトバンククリエイティブ
売り上げランキング: 91,199