Join query in Hanami-model

1k Views Asked by At

Is it possible to create join query in subclass of Hanami::Repository?

I found that this pull request implements this feature but I can't find it in current codebase.

1

There are 1 best solutions below

1
On BEST ANSWER

Hanami model based on rom, that's why you can use Relation#join method with a needful relation.

For this you need to call join method for one relation and set other relation as an attribute:

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

And that's all.

Some helpful links:

  1. rom-sql tests for left_join
  2. A real example