【发布时间】:2018-10-05 06:37:01
【问题描述】:
我的 Hanami 模型 User 和 UserInfo 具有 has_one 关联。
存储库如下所示:
class UserInfoRepository < Hanami::Repository
end
class UserRepository < Hanami::Repository
associations do
has_one :user_info
end
end
问题:我可以通过一个查询加入并加载两个表? (我正在寻找类似于 Rails 的includes)。
到目前为止我已经尝试过
def users_with_info
users.join(:user_info)
end
它执行连接,但不从user_infos 表中选择列。
提前致谢。
【问题讨论】:
-
我对 Hanami 不熟悉,但看起来它在幕后使用了
rom-repository和sequel。aggregate(:user_info)之类的东西应该根据 api.rom-rb.org/rom/ROM/Repository/… 工作,如果这有帮助,请告诉我,以便我可以将其作为答案 -
谢谢。
aggregate与我想要实现的非常相似:它返回我试图获取的同一组数据,但它执行 2 个请求:-首先获取所有users-第二个获取所有user_infos与条件user_id IN (1,2,3,4, 5 ...)。它只是在 SQL 查询中枚举所有获取的用户的 id。 -
我想知道执行连接然后显式聚合是否会起作用。对不起,我对宝石了解不多。只是模糊地看了看文档
标签: ruby hanami ruby-object-mapper