Я пытаюсь создать запрос, который будет возвращать отдельные записи из одной таблицы на основе условий в связанной таблице.
В частности, есть модель Act
, которая имеет_many Events
и, конечно, 'Event' принадлежит__ * Act
Я хотел бы найти те Acts
, которые не имеют Event
на определенную дату.
Запрос должен быть выполнен с условием not
, так как в противном случае результаты не исключат никаких записей Act
.
Я пробовал различные конструкции, в том числе с использованием методов слияния между классами, но это не сработало.
#Act model
def self.busy_on(date)
joins(:event).merge.not(Event.busy_on(date))
end
#Event model
def self.busy_on(date)
where(date: date)
end
#Controller
Act.busy_on(params[:date])
Выше приведена ошибка аргумента (ожидайте, что 1 получил 0), но я не уверен, что это правильно с самого начала.