How to add custom filter to Active Admin?

后端 未结 8 2106
眼角桃花
眼角桃花 2020-12-25 11:04

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         


        
8条回答
  •  执念已碎
    2020-12-25 11:07

    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'

提交回复
热议问题