我有两个这样的模型:
User
has_many :contacts
Contact
belongs_to :user
如何获得拥有最多联系人数的用户?
答案 0 :(得分: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)