Поисковый запрос по ассоциации has_many - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть модель органайзера с 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}}

Кажется, работает хорошо.Если есть лучший способ сделать это, пожалуйста, укажите это.

1 Ответ

0 голосов
/ 25 февраля 2019

Я получил эту работу, добавив в метод search_data следующее:

events: events.map{|event| {starts_on: event.starts_on} }

, а затем в методе поиска вы можете сделать следующее:

where: {"events.starts_on" => {gt: Time.now}}

...