2014-01-31 2 views
1

Использование Rails 3.2 Я пытаюсь подвести некоторые атрибуты модели, но ограничить ее, например, последними 10. Почему она всегда суммирует все элементы.Сумма и предел суммирования Activerecord не работает

Shop.limit(10) 

дает мне объект ActiveRecord :: Relation, состоящий из 10 магазинов. Но если я

Shop.limit(10).sum(:id, :order => "created_at DESC") 

я получаю сумму всех магазинов идентификаторами, а не только 10. То же самое относится и к

Shop.sum(:id, :order => "created_at DESC", :limit => 10) 

Есть ли способ, чтобы подвести итог всего идентификаторы только последний/первый 10 магазинов?

ответ

1

Вы можете сделать что-то вроде этого

Shop.select ("ID") заказ ("created_at убывание") предел (10) .collect.. (&: ID) .sum

он даст сумму последних десяти идентификаторов

Смежные вопросы