gpt4 book ai didi

ruby-on-rails - 包含关联计数的 Activerecord 查询

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

我有一个模型用户,它有很多帖子。要查询前 5 个用户,我会这样做:

User.all :limit => 5

它返回一个很好的用户,但是当获取每个用户的帖子数时,它再次查询数据库:

a_user.posts.count

有没有一种方法可以避免此查询并通过第一个查询获取计数?我正在遍历用户,每次查询用户的帖子数时它都会阻塞。

最佳答案

Rails 有一个内置方法,在声明像 has_many 这样的关联时必须将其设置为 true,而且,您还必须向数据库添加一列。

在声明has_many 关联时设置counter_cache: true

在数据库中加入#{table_name}_count会自动自增自减,所以查询前5个用户时直接选择该列即可。

更多信息:

http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

http://railscasts.com/episodes/23-counter-cache-column

关于ruby-on-rails - 包含关联计数的 Activerecord 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14198401/

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