在Hanami模型中加入查询

时间:2017-03-28 21:57:36

标签: ruby hanami hanami-model

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

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

1 个答案:

答案 0 :(得分:12)

基于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