Size: a a a

Ruby, Rails, Hanami | dry-rb

2020 April 13

SP

Sergey Pustovalov in Ruby, Rails, Hanami | dry-rb
🐸 Kernel panic
Коллеги, добрый вечер, подскажите пожалуйста по джойну, не могу его битый час прописать правильно

Предметка: есть здания (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)

Есть ощущения, что он выдает повторяющиеся показания общедомовых девайсов, потому что в базе по серийникам и в выводе не совпадают девайсы
Джойн не даёт уникальности, ага )
источник

🐸

🐸 Kernel panic in Ruby, Rails, Hanami | dry-rb
Sergey Pustovalov
Джойн не даёт уникальности, ага )
Ну суть в том, что после .distinct кол-во записей на выходе получается равно кол-ву записей из запроса

DeviceValue.joins(device: :building).where(buildings: { id: @building.id })
источник

🐸

🐸 Kernel panic in Ruby, Rails, Hanami | dry-rb
Что наталкивает на мысль, что он вроде чет и ищет похожее, но вот индивидуальные не хочет выбирать
источник

VS

Viacheslav Stepanov in Ruby, Rails, Hanami | dry-rb
Тебе нужен второй джойн к (device: appartment)
источник

🐸

🐸 Kernel panic in Ruby, Rails, Hanami | dry-rb
Viacheslav Stepanov
Тебе нужен второй джойн к (device: appartment)
А можно на примере, если не сложно? Я в джойнах оч сильно плаваю
источник

🐸

🐸 Kernel panic in Ruby, Rails, Hanami | dry-rb
Типа .joins(..).joins(..)?
источник

VS

Viacheslav Stepanov in Ruby, Rails, Hanami | dry-rb
Ага и  условие через или также к каждому из них
источник

🐸

🐸 Kernel panic in Ruby, Rails, Hanami | dry-rb
с двумя joins подряд не получилось, на выходе заимел 0 записей (мб потому что один из двух ключей всегда nil, и inner join это отфильтровывает)

Получилось сделать два разных запроса по джойну к зданию и по джойну к квартире, на объединении ошибка — Relation passed to #or must be structurally compatible
источник
2020 April 14

МВ

Максим Вейсгейм in Ruby, Rails, Hanami | dry-rb
Anton Davydov
а я уже не помню
а можешь скинуть свой vimrc?
источник

AD

Anton Davydov in Ruby, Rails, Hanami | dry-rb
Максим Вейсгейм
а можешь скинуть свой vimrc?
источник

МВ

Максим Вейсгейм in Ruby, Rails, Hanami | dry-rb
sps
источник

AD

Anton Davydov in Ruby, Rails, Hanami | dry-rb
источник

W

WannaParadise in Ruby, Rails, Hanami | dry-rb
Почему это принтится на странице
источник

W

WannaParadise in Ruby, Rails, Hanami | dry-rb
Хотя я вывожу только name
источник

АД

Антон Дьячук in Ruby, Rails, Hanami | dry-rb
А он приторговывает биткойнами?
источник

АД

Антон Дьячук in Ruby, Rails, Hanami | dry-rb
а это что-то плохое?
источник

СН

Смерть Неизбежна in Ruby, Rails, Hanami | dry-rb
Раздает в интернете нуждающимся
источник

СН

Смерть Неизбежна in Ruby, Rails, Hanami | dry-rb
(в основном в телеграм чатах)
источник

АД

Антон Дьячук in Ruby, Rails, Hanami | dry-rb
ничего об этом не знаю, слышал что куча поддельных аккаунтов с которых якобы сякие илоны маски раздают биткойны
источник

СН

Смерть Неизбежна in Ruby, Rails, Hanami | dry-rb
Вот поэтому ты до сих пор и не биткоиновый магнат.
источник