Rails方式为COUNT个记录数

1 ruby-on-rails count

我有一个名为Partners的模型和一个名为Profiles的模型.

合作伙伴有许多个人资料,个人资料有一个合作伙伴.

我需要一种方法来计算合作伙伴控制器,以返回他们拥有的配置文件数量.

在配置文件表中,该列被调用:partner_id,它与partners表中的id列相同.

我见过.count()函数,但无法解决我需要返回正确数字的问题

干杯

tik*_*tak 10

我认为最好的方法是使用counter_cache列:

class Partner < ActiveRecord::Base
  has_many :profiles, :dependent => :destroy
end

class Profile < ActiveRecord::Base
  belongs_to :partner, :counter_cache => true
end
Run Code Online (Sandbox Code Playgroud)

你应该profiles_countpartners表中添加列.这不是一种好的调用方式,@partner.profiles.count因为它会对数据库执行额外的查询.你应该使用@partner.profiles.size.如果已从数据库中检索它并在另一种情况下执行查询,它将获得集合的大小.有关详细信息,请访问以下链接: