У меня есть метод Car (таблица cars), владельцем которого является has_many (таблица owners).Как выбрать все автомобили, у которых нет владельцев (== в таблице owners нет ни одной строки с идентификатором соответствующего автомобиля)?
Car
cars
has_many
owners
Я бы сделал это, как показано ниже в модели ....
@cars_without_owners = Car.where("owner_id = ?", nil)
или, чтобы быть в безопасности ....
@cars_without_owners = Car.where("owner_id = ? OR owner_id = ?", nil, "")
Вы можете использовать это, хотя это будет очень медленно, если в ваших таблицах много записей:
Car.where("not exists (select o.id from owners as o where o.car_id = cars.id)")