У меня есть 2 модели, подобные этой:
User has_many :contacts Contact belongs_to :user
Как я могу получить пользователя, который имеет максимальное количество контактов?
В идеале вы должны использовать столбец кэша счетчика в вашей модели пользователя:
# 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 , чтобы легко подтянуть пользователя с максимальным количеством контактов с помощью одного запроса:
User.maximum(:contacts)