У меня была эта проблема, которую я просто не могу решить. Мне нужно получить сумму атрибута "views" в моем объекте, однако при использовании: include я получаю очень неточную сумму.
>> c = Category.find 181
>> c.pages.sum(:views, :include => [:tags, :author], :conditions => q)
=> 48448
Если я удалю: include, я получу правильную сумму.
>> c.pages.sum(:views, :conditions => q)
=> 11991
Количество страниц одинаково в обоих запросах, поэтому я понятия не имею, почему это значение может отличаться. Также будет работать просмотр каждой страницы.
>> c.pages.find(:all, :include => [:tags, :author], :conditions => q).each {|p| a += p.views}; a
=> 11991
: теги и: author не имеют атрибута: views или даже чего-либо удаленно схожего, и даже указание атрибута в pages.views дает тот же результат.
К сожалению, мне нужно получить это значение через базу данных, чтобы быстро сгенерировать график для представлений. Переменная q, используемая в условиях, является фильтром, и причина: include необходима. Я не понимаю, что может быть причиной того или иного значения 48448;
Буду признателен за любую помощь в этом, и заранее спасибо.