RailsAdmin - 自定义您自己的过滤器

Lau*_*ens 8 ruby ruby-on-rails filter ruby-on-rails-3 rails-admin

我正在使用https://github.com/sferik/rails_admin来处理我的管理界面.

可以根据此模型中存在的当前列(id,created_at等)过滤模型.

我希望能够为关联添加自定义过滤器.

例如:

当我在探索"城镇"模型时,我希望能够只显示有一个或多个项目的城镇.

我可以通过向城镇添加一个新列来实现这一点,将has_projects称为布尔值,当有一个或多个项目关联时,它将设置为true,但我觉得必须有一种更清晰的方法来制作自己的自定义过滤器?

小智 4

您可以尝试使用枚举。请参阅https://github.com/sferik/rails_admin/wiki/Enumeration

我用于belongs_to关联,如下所示:

field :partner_id, :enum do
  enum do
    Partner.all.collect {|p| [p.name, p.id]}
  end
end
Run Code Online (Sandbox Code Playgroud)

并在列表视图中添加:

list do
  filters [:partner_id]
  ...
end    
Run Code Online (Sandbox Code Playgroud)

  • 这似乎不适用于这个问题。您正在为现有数据库字段 `:partner_id` 提供可能的值以进行过滤/选择。OP 询问基于以下查询的过滤:“显示具有 1 个或多个相关项目的城镇”。 (6认同)