Присоединиться к запросу в 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

И это все.

Некоторые полезные ссылки:

  1. rom-sql тесты дляleft_join
  2. Реальный пример
Другие вопросы по тегам