SP
Предметка: есть здания (Building), в здании есть квартиры (Apartment), есть устройства (Device), у устройств есть показания (DeviceValue). Device может быть привязан ЛИБО к Building (общедомовой), ЛИБО к Apartment (индивидуальный) (ключ building_id и apartment_id один nil, другой есть, в зависимости от).
Суть: нужно выбрать те показания, устройства которых являются общедомовыми для известного
@building.id
или находятся в apartments, которые в свою очередь находятся в @building
Мой запрос:
DeviceValue.joins(device: {building: :apartments}).where('buildings.id = ? OR apartments.building_id = ?', @building.id, @building.id)
Есть ощущения, что он выдает повторяющиеся показания общедомовых девайсов, потому что в базе по серийникам и в выводе не совпадают девайсы