Active Admin allows me to define filters that are displayed on the index page like so:
ActiveAdmin.register Promo do
filter :name
filter :address
filt
This worked for me:
In my model
scope :active, -> { where(inactive_at: nil) }
scope :inactive, -> { where.not(inactive_at: nil) }
...
ransacker :listing_status, formatter: proc{ |status|
ids = status == 'Active' ? active.ids : inactive.ids
ids = ids.present? ? ids : nil
}, splat_params: true do |parent|
parent.table[:id]
end
In my admin file
filter :listing_status_in, as: :select, collection: %w(Active Inactive), label: 'Listing Status'