【发布时间】:2014-09-30 08:26:57
【问题描述】:
我需要为属于另一个资源的日期范围创建自定义 ActiveAdmin 过滤器。我想按用户完成调查的日期范围过滤用户列表。
我在 ActiveAdmin DSL 中声明了一个自定义过滤器,如下所示:
filter :by_date_completed, label: 'By Date Completed', as: :date_range
这使我在活动管理员中成为一个很好的日期范围来限制我的用户。都好。
我找不到太多关于如何执行此操作的文档,但在我的用户模型中,我尝试创建一个 ransacker 来处理过滤器。
ransacker :by_date_completed, {
formatter: proc { |start_date, end_date|
time_range = start_date..end_date
users = User.joins(:surveys).where(surveys: { updated_at: time_range})
users = users.map(&:id)
users.present? ? users : nil
},
callable: proc { |parent|
parent.table[:id]
}
}
但是 ActiveAdmin 一次将日期范围传递给过滤器,所以我无法获得搜索范围?
在这种情况下我打算做什么?我是否以错误的方式解决整个问题?
【问题讨论】:
标签: ruby-on-rails filter activeadmin ransack