Присоединиться к запросу в Hanami-модели
Можно ли создать запрос соединения в подклассе Hanami::Repository
?
Я обнаружил, что этот запрос извлечения реализует эту функцию, но я не могу найти его в текущей кодовой базе.
1 ответ
Решение
Модель Hanami основана на rom, поэтому вы можете использовать Relation#join
метод с необходимым отношением.
Для этого вам нужно позвонить join
метод для одного отношения и установить другое отношение как атрибут:
class PostRepository < Hanami::Repository
associations do
has_many :comments
end
# ...
def join_example(date_range)
posts # => posts relation
comments # => comments relation
posts
.join(comments) # set relation object here
.where(comments[:created_at].qualified => date_range)
.as(Post).to_a
end
end
И это все.
Некоторые полезные ссылки:
- rom-sql тесты для
left_join
- Реальный пример