Returns [user1,user2,user3,user4] -6ren">
gpt4 book ai didi

ruby-on-rails - rails : Get relationship on array of objects

转载 作者:行者123 更新时间:2023-12-03 00:40:54 24 4
gpt4 key购买 nike

我不知道是否有一个好的答案。假设我有:

users = User.where(:location => "Utopia") #=> Returns [user1,user2,user3,user4]

我想做这样的事情:

users.photos #=> Returns all photos this group of users has

只需取回所有照片即可,无需迭代它们。我问是因为每次迭代都是一次数据库调用。有什么好的方法可以进行单个数据库调用吗?

最佳答案

最直接的方法是使用 eager loader:

users = User.where(:location => 'Utopia').includes(:photos)

这将在一次传递中获取用户,然后在另一次传递中获取关系及其相关照片。如果您使用 JOIN 或子选择,您可以将其全部包装到一个调用中,这是您的调用,但它看起来像这样:

photos = Photo.includes(:user).where('users.location' => 'Utopia')

Active Record Query Interface documentation 中提供了更多信息。在第 12 节中。

关于ruby-on-rails - rails : Get relationship on array of objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8074394/

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