はじめに
activeadminを使った際に、基礎的なコードだが何をしているものかわからなかったので、分からなかった箇所をまとめてみた。
分からなかった下記のコード
ActiveAdmin.register Text do
permit_params :genre, :title, :content
index do
selectable_column
id_column
column :genre, :text, &:genre_i18n
column :created_at
column :updated_at
actions
end
show do
attributes_table do
row :id
row :genre, :text, &:genre_i18n
row :content
row :created_at
row :updated_at
end
active_admin_comments
end
form do |f|
f.semantic_errors
f.inputs do
input :genre, as: :select, collection: Text.genres_i18n.invert
input :title
input :content
end
f.actions
end
filter :genre, as: :select, collection: Text.genres_i18n.invert.transform_values { |v| Text.genres[v] }
filter :title
filter :content
filter :created_at
filter :updated_at
end
ActiveAdmin.register
ActiveAdmin.register Text do
#処理
end
app/admin/配下に、管理画面を追加するコマンドで自動生成されるファイルに標準で記述されている構文。この中に処理を記述していく。
permit_params
permit_params :genre, :title, :content
permit_params
はデータモデルの有効なパラメータの設定。明示したフィールドのアクセスを許可する。
filter
filter :genre, as: :select, collection: Text.genres_i18n.invert.transform_values { |v| Text.genres[v] }
filter :title
filter :content
filter :created_at
filter :updated_at
filter
は管理者画面の右側(検索ボックス)のカスタマイズを指定する。
as:
は指定した形式にオーバーライドする。
collection:
は渡すデータを指定する。
index
index do
selectable_column
id_column
column :genre, :text, &:genre_i18n
column :created_at
column :updated_at
actions
end
アクションに対応した処理を記述。
selectable_column
はチェックボックスの配置を指定。
id_column
はそのまま表示するコンテンツ。
column
はモデルのフィールドに対応したコンテンツを表示。
actions
はpermit_params
の値に応じて閲覧編集削除のリンクを表示。
ちなみに対応するカラムのenumはこちら
ja:
genre: &genre
invisible: '非表示'
basic: 'Basic'
git: 'Git'
ruby: 'Ruby'
rails: 'Ruby on Rails'
php: 'PHP'
enums:
text:
genre: *genre
movie:
genre: *genre
show
show do
attributes_table do
row :id
row :genre, :text, &:genre_i18n
row :content
row :created_at
row :updated_at
end
active_admin_comments
end
attributes_table
はデフォルトの外観を維持する。
row
はモデルのフィールドに対応したコンテンツの表示。
active_admin_comments
はコメントフォームの表示。
from
form do |f|
f.semantic_errors
f.inputs do
input :genre, as: :select, collection: Text.genres_i18n.invert
input :title
input :content
end
f.actions
end
form
はフォームのカスタマイズを指定。
f.semantic_errors
はエラーメッセージの表示。
f.inputs
は入力フィールドを表示。
f.input
はモデルのフィールドに対応した入力フィールドを表示。
f.actions
はsubmit/cancelボタンの表示。
最後に
rails g active_admin:resource モデル名
を実行した際に作成されるリソースをベースに、上記のコードでカスタマイズするという内容だった。