我有一个名为Partners的模型和一个名为Profiles的模型。
一个合作伙伴有多个配置文件,一个配置文件只有一个合作伙伴。
我需要一种方法来计算合作伙伴的控制器,以返回他们有多少个人资料。
在profiles表中,该列称为: partner_id,它与partners表中的id列相同。
我看过.count()函数,但不知道需要什么才能返回正确的数字
干杯
发布于 2013-01-16 19:37:06
我认为最好的方法是使用counter_cache列:
class Partner < ActiveRecord::Base
has_many :profiles, :dependent => :destroy
end
class Profile < ActiveRecord::Base
belongs_to :partner, :counter_cache => true
end您应该向partners表中添加profiles_count列。这不是调用@partner.profiles.count的好方法,因为它将对数据库执行额外的查询。您应该改用@partner.profiles.size。如果已经从数据库中检索到集合,它将获取集合的大小,并在另一种情况下执行查询。有关更多详细信息,请访问以下链接:
发布于 2013-01-16 19:33:15
@partner = Partner.find params[:id]
@partner.profiles.count应该能起到作用
发布于 2013-01-16 19:35:51
如果你有
has_many :profiles 在控制器中实例化的Partner类和@partner上,您可以执行以下操作:
@partner.profiles.counthttps://stackoverflow.com/questions/14357378
复制相似问题