我在ActiveAdmin中具有默认范围,不包括“待定”状态,因为我们有很多这种状态,并且我们不想默认看到它。但是,当我们通过过滤器进行搜索时,我们希望跳过此默认范围,并包含“待处理”状态。该怎么做?
我的模特:
class MyModel < ActiveRecord::Base
validates :status, presence: true,
inclusion: { in: %w(pending published accepted declined cancelled) }
scope :published, lambda {
where("bookings.published_at IS NOT NULL")
}
end
ActiveAdmin模型:
ActiveAdmin.register MyModel do
actions :index, :show
config.sort_order = "locked_at_desc"
config.scope :published, default: true
index do
column :id
column :status
actions
end
end
答案 0 :(得分:1)
您需要在管理文件中添加:all
范围。然后,您可以按过滤器进行搜索,该过滤器会在pending
范围内包含:all
状态。如果您需要加快所有记录的加载速度,可以在show_count: false
范围内提供:all
。
ActiveAdmin.register MyModel do
...
scope :published, default: true
scope :all # scope :all, show_count: false
...
end