gpt4 book ai didi

ruby-on-rails - 根据列的值获取记录的第一个实例

转载 作者:搜寻专家 更新时间:2023-10-30 23:02:09 27 4
gpt4 key购买 nike

我有两个模型,一个是Repository,第二个是Photo。存储库可以有很多照片。

我的最终目标是显示一组存储库和每个存储库的显示图片。

我想做这样的事情:

@repositories = Repository.limit(10)
repositories_id = @repositories.map &:id
@photos = Photos.where(repository_id: repositories_id)

然而,这将返回多个具有相同 repository_id 的照片对象,而我只想要第一个实例。

最佳答案

最简单的方法是将您的Photo 查找移动到 map 中。这不是最有效的查询模式,但在 10 个存储库上,暂时还可以。

@repositories = Repository.limit(10)
@photos = @repositories.map do |repository|
Photo.where(repository_id: repository.id).first
end

或者,如果您设置了 Repository.has_many :photos

@repositories = Repository.limit(10)
@photos = @repositories.map do |repository|
repository.photos.first
end

更新 3 个查询而不是 11 个

@repositories = Repository.limit(10)
repository_ids = @repositories.map &:id
photo_ids = Photo.where(repository_id: repository_ids).group(:repository_id).minimum(:id)
photos = Photo.find(photo_ids.values)

关于ruby-on-rails - 根据列的值获取记录的第一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31090935/

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