管理画面プラグインのactive_adminについて軽く調べたのでそのまとめ
- Github
- Doc
- Demo
ドキュメントが整備されているのでドキュメントを見れば大体やりたいことはできそうな気がしました。
大体調べているのはカスタマイズ性です。Modelをベースとした管理は他の候補のプラグインでもできるので
いかに何かやろうとした時にすごいめんどくさいことにならないかがポイントです。
Modelの管理の部分のカスタマイズはASCIIcastsに乗っていたのでここをみればよさそう
インストール
active_adminは管理者管理にdeviseを使っているのですが今回はdeviseはインストール済みだったのでそのへんはあまりみていない。
Gemfileに下記記述をしてbundle install
gem 'activeadmin'
active_adminのファイルを生成
$ rails g active_admin:install
http://localhost:3000/admin
上記で管理画面にアクセスできるようになる。
認証情報は初期状態だと下記
- User: admin@example.com
- Password: password
active_adminは初期状態だとなにも管理していないので管理するmodelを追加するために下記コマンドを叩く
$ rails g active_admin:resource model_name
追加するとapp/admin/model_name.rbというファイルが生成される。
routesなども設定されてる
カスタマイズ
表示項目のカスタマイズ
一覧ページは初期状態だと全カラムの情報が表示されているが必要なものだけを表示
ユーザーのところではidとemailだけ表示する
app/admin/user.rb
ActiveAdmin.register User do index do column :id column :email end end
列の名前を変更。第一引数に設定
column "hoge", :email
ちなみにhelperメソッドが使えるので表示する値の表示形式変えたかったらhelperを使う
column "hoge", do |user| helper_method user.name end
カスタムアクション
usersに新しいアクションを追加する
- Collection Resourceの場合
- collection_actionを定義
- routesは/admin/users/hoge
ActiveAdmin.register User do collection_action :hoge do # ここに処理 end end
- Single Resourceの場合
- member_actionを定義
- routesは/admin/users/:id/hoge
ActiveAdmin.register User do member_action :hoge do # ここに処理 end end
renderされるのは/app/views/admin/users/hoge.html.erbとかです。
カスタムページ
モデルと関係無いページを作るときにつかう?
app/admin/hoge.rb 作る
ActiveAdmin.register_page "Hoge" do content do # ここに処理をかく! # paramsとかもControllerと同じようにとれる # ex. params[:hoge] end end
http://localhost:3000/admin/hoge にアクセスできるようになる + ヘッダにメニューがたされる