Rails 活跃的管理员过滤器 deleted_at

Rails active admin filter deleted_at

我希望能够过滤活动管理员中的所有软删除用户。我尝试了以下代码,但它似乎没有按预期工作?

filter :deleted_at, :as => :boolean, :collection => {:Yes => nil, :No => ''}

它不会起作用,因为它不是正确的方法:

filter :deleted_at, :as => :boolean, :collection => {:Yes => nil, :No => ''}

as: :boolean不是AA命令。

试试这个:

filter :deleted_at, as: :select, collection: [['Yes', nil], ['No', '']]

价值观由你决定!如果数据库确实包含布尔字段,请更改它:

filter :deleted_at, as: :select, collection: [['Yes', true], ['No', false]]

也可以使用作用域来实现:

scope :deleted, default: true
scope :not_deleted

将这些范围添加到您的模型中:

scope :deleted, -> { where('deleted_at is not null') }
scope :not_deleted, -> { where(deleted_at: nil) }