У меня есть две модели:
Class Item < ApplicationRecord
belongs_to :item_category
end
Class ItemCategory < ApplicationRecord
has_many :items
end
Упрощенная схема:
items (id, name, price, item_category_id)
item_categories (id, name, depth(int))
Дайте список идентификаторов элементов, я хочу загрузить эти элементы.
Если элемент находится в категории определенной глубины (например, 2), то я хочу дополнительно предварительно загрузить эту категорию, а также все элементы в этой категории, даже если они не находятся в начальном списке идентификаторов элементов.
Самое близкое, что я получил, - это предварительная загрузка всех категорий, а не тех, которые имеют определенную глубину:
Item.where(id: IDS).includes(item_category: :items)