1 つ以上のウィジェットを持っている (または持っていない) UserProfile のリストがあります。
class UserProfile < ActiveRecord::Base
has_many :widgets
end
@all_profiles = UserProfile.joins(:widgets).group('user_profiles.id').order("name ASC")
インデックス ビューでは、ビューの各行で新しいクエリを実行して のウィジェットの数を取得する代わりに、@all_profile.each
グループ化された各行にいくつのウィジェットがあったかを示すカウント列を元の列に追加する方法はありますか? (たとえば、N 個の @all_profiles がある場合、データベースを N 回再クエリするのを避けますか?
(これは、N 個の余分なクエリを避けるために重要であるだけでなく、count 列に SORT オプションを追加できるため、ウィジェットが最も多い顧客で並べ替えることができます)