Railsを使うにあたってActive Adminを管理画面に多用しているのですが、ネットになかなか有益な情報が落ちてなかったので、自分が使うやつはまとめてみよう、と思って記事を書いてみました🙌
使えそうなやつ
Modelに紐づかないページ作成
モデルに紐づかないページを作成したいケースでは、下記のように使い分けることでページ作成が可能です
# OK
ActiveAdmin.register 'Order' do
end
# NG
ActiveAdmin.register_page 'Order' do
end
ちなみに中身はcontentで囲んでtableやcolumnなどで表示が可能です
content title: proc { I18n.t('active_admin.dashboard') } do
table_for Order.all do
column "user", :user
column "レク", :recreation
# column "Amount", :amount_in_dollars
end
columns do
column do
panel 'Recent Posts' do
ul do
Order.all.map do |order|
# li link_to(post.title, admin_post_path(post))
li order.user
end
end
end
end
end
end
Showのattributes_table_forでlink_to入れたい時
レシーバーに書くデータを突っ込むことで、partner.recreations[n]
を取得できる
show do attributes_table_for partner.recreations do row :title row :id do |rec| # ここ!! link_to '詳細', admin_recreation_path(rec.id) end end end
カスタムなHTMLを入れたい場合
部分テンプレ作って作成するのが吉です
一応elmとかっぽく記述も可能ですが、htmlの方が誰でもわかりやすいかと思うので、こんな感じで作成すると良いかと
テンプレは /views/admin/_chat.html.erb
を作成して差し込んでます
show do
attributes_table do
row :id
row :user
row :recreation
row :prefecture
row :city
row :number_of_people
row :order_type
row :created_at
row :updated_at
end
panel 'チャット', style: 'margin-top: 30px;' do
render 'admin/chat', order: order # 複雑な内容を表示したいので、テンプレ作成して対応
end
end