hello-world
webエンジニアのメモ。とりあえずやってみる。

active_adminでカスタムfilter(select box)を設置する

公開日時

active_adminで管理画面を作る際にデフォルトでfilterを作ってくれますが、select boxを使いたい部分がテキスト入力になっていたりします。

そんな時は、filterのカスタマイズ設定をすれば簡単に切り替えることが可能です。

select boxを使いたい場合、以下のようにasとcollectionを設定します。

# admin
ActiveAdmin.register Data do
  # 論理削除フラグをselect boxとして表示
  filter :is_deleted, :as => :select, :collection => [["削除", 'true'], ["公開", 'false']]
end

こんな感じにselect boxが表示されるようになります。

admin_is_deleted

collection部分には別モデルのオブジェクトを使用することもできます。

# admin
ActiveAdmin.register Data do
  # Packageモデルのversionをselect boxとして表示
  filter :version, :as => :select, :collection => proc{ (Package.all.map { |p| p.version }).uniq.sort }
end

mapやuniqと組み合わせることで手軽にfilterが書けるので便利です。

参考


Related #active_admin

[rails]Active Adminの編集画面に登録済みの画像プレビューを表示する

先日のActiveAdminまとめに続き今回もActive Adminネタです。

[Rails]ActiveAdminでCSVダウンロード機能をカスタマイズする

ActiveAdminにはcsvダウンロード機能がデフォルトついているのですが、デフォルトのままだと一括でcsvデータを取得することができません。(管理画面表示1ページあたりの表示件数分になるので30件しか取得できませんでした)