Итак, у меня есть модель House
, и дом может have_many
Room
s.Rails Console - удалить все записи, которые не имеют ассоциации
Я хотел бы удалить все записи из House
, которые не имеют Room
s.
Я попытался
House.includes(:room).having('room.id IS NULL')
, какие ошибки, как это делает
House.all().where(:room.count == 0)
и многие другие вещи, которые я пробовал по той же схеме.
Возможно, у меня есть что-то очень прямолинейное, у кого есть идеи?
Это правильное значение, но не выбрасывает такой столбец: rooms.id: error на delete_all. Похоже, он пытается найти room.id в Доме, хотя House> has_many rooms? – Advocation
Не знаете, как 'delete_all' работает внутри. Вы всегда можете выполнять два отдельных запроса, я обновлю ответ. –
Можете ли вы попытаться заменить 'includes (: rooms)' на 'joins (: rooms)'? –