2012-03-27 75 views
0

我有2个型号是这样的:获取实体有最大的关联

User 
    has_many :contacts 


Contact 
    belongs_to :user 

我怎样才能得到谁在交往中的最大数量的用户?

回答

0

理想情况下你最好use a counter cache column on your User model:

# db/schema.rb 
create_table "users", :force => true do |t| 
    t.integer "contacts_count" 
end 

# app/models/user.rb 
class User 
    has_many :contacts 
end 
# app/models/contact.rb 
class Contact 
    belongs_to :user, :counter_cache => true 
end 

然后,你可以使用ActiveRecord的maximum calculation轻松拉起用户与单个查询最大数目:

User.maximum(:contacts)