我需要爲屬於另一個資源的日期範圍創建自定義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