Railsで管理画面を作成する際に活躍してくれるGem active_admin
の紹介です。このGemは納品ができる位のきれいなデザインの管理画面を簡単に作成してくれます。もちろん管理者ログインの機能も一緒に追加されます。
activeadmin/activeadmin · GitHub
(2015-01-10 11:10) Rails 4.2対応!
🚜 Gemのインストール
いつ戻おりGemfile
に以下を追加して、bundle install
を実行してください。
# ActiveAdmin |
🐰 active_adminの設定ファイル生成
ターミナルで次のコマンドを実行すると必要なファイルが追加されます。
rails g active_admin:install |
😸 action_mailerの設定
次にaction_mailerの設定を書きます。今回は1.3万通/月まで無料な『Mandrill』を使います。config/environments/development.rb
を作成して次の設定を追記します。(環境ごとに適宜設定を書き換えてください)
# -------------------------------- |
ちなみに送信元のメールアドレスは、config/initializers/devise.rb
のconfig.mailer_sender
ですので、適宜変更してください。
🗻 View側の設定
次にview側にタグを追加します。app/views/layouts/application.html.haml(ERB/slim)
に以下を追加。
|
あとは、devise側のviewもカスタマイズしたい場合には、ターミナルで次のコマンドを実行するとapp/views/devise
フォルダ配下にdevise用のviewファイルが生成されます。
rails g devise:views |
🏀 マイグレーション
ユーザー管理用テーブルadmin_users
と管理画面内のコメント情報のテーブルactive_admin_comments
のマイグレーション処理を実行。
bundle exec rake db:migrate |
🎃 表示確認
ブラウザから、http://localhost:3000/admin
を見ると管理画面へのログイン画面が出てきます。
初期の管理ユーザーとパスワードは以下のとおりです。
(管理User/Passwordはログイン後に管理画面から修正できます)
User: admin@example.com Password: password
🐯 管理対象のモデルの管理画面を生成
さらにコマンドラインから管理する対象のモデルの管理画面を生成。
rails g active_admin:resource model_name |
これで、active_adminの設定は完了です。
😎 管理画面の機能
管理画面のサンプルはこちら。
管理画面の機能は次のとおりです。
レコードのソート表示 レコードの検索、検索時のフィルタリング レコードを編集・追加・削除 レコードをCSV,XML,JSON形式で出力 レコードにコメントを記述
🚌 一覧画面に表示するカラムを制限
管理画面に表示されるカラムは初期状態ではすべて表示されて若干見にくいです。表示するカラムを制限して可読性を上げたい場合は、app/admin/model_name.rb
を次のように編集します。
ActiveAdmin.register ModelName do |
ちなみに、helperメソッドを使うこともできるので、必要に応じてヘルパーメソッドを使って表示形式を編集してください。
🐮 一覧画面のサイドバーの項目を変更
一覧画面の右側のサイドバーの項目を必要な項目だけに絞ることができます。
FILTER_COLUMNS = %w(id title) |
🗽 編集画面のフォームを変更
管理画面からレコードを編集・追加するときに使うフォームの形式も簡単に変更できます。app/admin/model_name.rb
を次のように追加します。
ActiveAdmin.register ModelName do |
🚕 オリジナルの管理画面ページを作成
オリジナルの管理画面のページ(アクション)を作成することも簡単にできます。
まず、app/admin/model_name.rb
を次のように追加します。
ActiveAdmin.register ModelName do |
すると、http://localhost:3000/admin/model_name/test
にブラウザでアクセス出来ます。
Viewを編集する場合は、/app/views/admin/model_name/test.html.ERB(haml/slim)
です。
もし、管理画面が必要なときはぜひこのGemを使ってみてください。ちなみに、英語ですがactive_adminは公式のドキュメントがすごくわかりやすくて充実しています。もし良ければWikiも見てみてください。
activeadmin/activeadmin Wiki · GitHub
🤔 Active Admin Tips
ここからはActive Adminを使っていく中でためているTipsを書いていきます。
BulletでN+1の警告が出る場合
開発環境でBulletを使っていると、リレーションのあるカラムを表示しているときにN+1の指摘を受けます。
その対策方法の記事を見付け足のでメモ。
controller do |
Preventing N+1 Query Problem in Active Admin index action. - ravelllの日記
独自アクションのボタンを設置する
active_adminで作ったindex/showなどのページに独自のボタンを追加する方法。
# ---------------------------------------- |
ActiveAdminにカスタムアクションを追加する - sessanの日記
serializedされたカラムを扱う
serializedされたカラムをactive_adminで扱う方法。
まずは、active_adminの設定部分(app/admin/product.rb
)。
ActiveAdmin.register Product do |
次にモデル側(app/models/product.rb
)。
# ---------------------------------------- |
たったこれだけでserializeされたカラムも簡単に扱えます。active_adminまじぱないっす。
ruby - How do you handle serialized edit fields in an Active Admin resource? - Stack Overflow
🍄 参考リンク
Rails4 の ActionMailer でメール送信 | EasyRamble
NAMAKESUGI |[Rails]管理画面プラグイン ActiveAdmin その2(サイドバー編)
NAMAKESUGI | [Rails]管理画面プラグイン ActiveAdmin その1(導入編)
Rails3の管理画面プラグインActiveAdmin - chulip.org
Active Admin | The administration framework for Ruby on Rails
🐝 変更来歴
(2013-01-19) 新規作成
(2015-01-10 11:10) Rails 4.2対応!
(2015-01-17 10:20) BulletでN+1の警告が出る場合
(2015-01-18 09:15) Active AdminのTipsを追加