У меня есть модель органайзера с has_many :events
.Модель выглядит следующим образом:
class Organiser < ApplicationRecord
has_many :events, dependent: :delete_all
scope :search_import, -> { includes(:events) }
searchkick searchable: [:name]
def search_data
{
name: name,
category: category
}
end
end
Модель событий имеет столбец starts_on:datetime
, и я хотел бы отфильтровать организаторов, если у него есть событие в течение определенного периода времени.Как бы мне этого добиться?
РЕДАКТИРОВАТЬ
Я получил эту работу, добавив в метод search_data
следующее:
events: events.map{|event| {starts_on: event.starts_on} }
и затем в search
метод, вы можете сделать следующее:
where: {"events.starts_on" => {gt: Time.now}}
Кажется, работает хорошо.Если есть лучший способ сделать это, пожалуйста, укажите это.