gpt4 book ai didi

ruby - 如何在 Hanami 中使用一个 SQL 查询从多个表中获取数据?

转载 作者:数据小太阳 更新时间:2023-10-29 08:57:07 25 4
gpt4 key购买 nike

我有 Hanami 模型 UserUserInfo 具有 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 中的存储库获取数据时,结果集会映射到实体中。默认情况下,UserRepository 将映射到 User 实体。我猜测该实体没有来自 user_info 的列的属性。

您需要做的是创建一个实体,其中可以包含您要从数据库中获取的数据,然后在结果集上调用 .as(ThatEntityYouCreated)。例如,

def users_with_info
users.join(:user_info).map_to(UserWithInfo)
end

如果你不想创建一个实体,只想得到一个普通的散列,你可以这样做:

users.join(:user_info).map.to_a

但是,我认为这是一个拐杖。您不应从存储库方法中返回哈希。

关于ruby - 如何在 Hanami 中使用一个 SQL 查询从多个表中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50011179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com