在 Hanami 模型中加入查询

Join query in Hanami-model

是否可以在 Hanami::Repository 的子类中创建连接查询?

我发现 this 拉取请求实现了这个功能,但我在当前代码库中找不到它。

基于rom的Hanami模型,这就是为什么你可以使用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 tests for left_join
  2. A real example