Вы пробовали метод group
?
finalcount = Vote.where(:month => month, :year => year, :vote_id => vote.id).group(:user_id).count
даст вам Hash
, где ключи - user_id
, а значения - count
.Затем вы можете вызвать max
для этого результата, чтобы получить массив из двух элементов, содержащий user_id
и count
.
Вот пример из приложения, которое у меня есть под рукой, где я использую результатрасчет для поиска правильного экземпляра модели и чтения свойств из него:
ruby-1.9.2-p136 :001 > ExternalPost.group(:service_id).count
=> {18=>1, 19=>1, 21=>4}
ruby-1.9.2-p136 :002 > ExternalPost.group(:service_id).count.max
=> [21, 4]
ruby-1.9.2-p136 :003 > Service.find(ExternalPost.group(:service_id).count.max.first).user.first
=> "Brandon"