私はこの問題を抱えています。私はオブジェクトの属性 "views"を集計する必要がありますが、includeを使用すると非常に甘い金額になります。Model.sum使用時に無精量を返す:include(rails 2.3.8)
>> 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
:タグと:著者が持っていない:ビューは、属性またはリモートで似た、とさえpages.viewsと属性を指定しても何も同じ結果が得られます。
残念ながら、ビューのグラフをすばやく生成するには、データベースからその値を取得する必要があります。条件で使用されるq変数はフィルタであり、理由は:includeが必要です。私はこれを引き起こす可能性があるか、その48448の値がどこから来ているのか理解していません。
私はこれに助けていただきありがとうございます。
が含まれますが参加の代わりに含めるを試してみたのですか? – tokland