Получить сущность имеет максимальную ассоциацию - PullRequest
0 голосов
/ 28 марта 2012

У меня есть 2 модели, подобные этой:

User
    has_many :contacts


Contact
    belongs_to :user

Как я могу получить пользователя, который имеет максимальное количество контактов?

1 Ответ

0 голосов
/ 28 марта 2012

В идеале вы должны использовать столбец кэша счетчика в вашей модели пользователя:

# 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...