我需要为属于另一个资源的日期范围创建自定义ActiveAdmin过滤器。我想根据用户完成调查的日期范围来筛选用户列表。日期范围的自定义ActiveAdmin过滤器
我已经宣布在ActiveAdmin DSL自定义过滤器,像这样:
filter :by_date_completed, label: 'By Date Completed', as: :date_range
这让我一个很好的日期范围在主动管理的限制我的用户。都好。
我一直无法找到关于如何做到这一点的文档,但在我的用户模型中,我试图创建一个racksacker来处理过滤器。
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一次将日期范围传递给过滤器,所以我无法获取范围来搜索?
在这种情况下我该怎么做?我是否以错误的方式处理了整个问题?
感谢蒂莫:
这应该像一个查询结束!说得通。 – 2015-08-19 04:38:31