Мне нужно создать собственный фильтр ActiveAdmin для диапазона дат, который принадлежит другому ресурсу. Я хочу отфильтровать список пользователей по диапазону дат, когда они завершили опрос.Пользовательский фильтр 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 передает диапазон дат в фильтре по одному за раз, и поэтому я не могу получить диапазон поиска по?
Что я должен делать в этом сценарии? Неужели я собираюсь решить всю проблему не так?
Спасибо Timo ! Имеет смысл. –