Active Admin にカスタム フィルターを追加するにはどうすればよいですか?
概要
Active Admin を使用すると、次のようにインデックス ページに表示されるフィルターを定義できます。
ActiveAdmin.register Promo do
filter :name
filter :address
filter :city
filter :state
filter :zip
end
上記のすべてのフィールドを 1 つに結合して、名前または完全な住所に検索文字列を含むプロモーションを検索できるようにしたいと考えています。私のモデルには、使用できる名前付きスコープがすでにあります。
class Promo < ActiveRecord::Base
scope :by_name_or_full_address, lambda { |q| where('name LIKE :q OR address LIKE :q OR city LIKE :q OR state LIKE :q OR zip LIKE :q', :q => "%#{q}%") }
end
解決策
アクティブな管理者はメタ検索を使用します。たとえば、次のようにすることができます。
filter :"subscription_billing_plan_name" , :as => :select, :collection => BillingPlan.all.map(&:name)