Miniprofilerを使用すると、私のブログ インデックス ページが、投票数を見つけるためにすべてのブログ投稿に対して SQL クエリを呼び出していることがわかります。これらのクエリを統合できるように、投票を熱心に読み込むにはどうすればよいですか?
私が見るSQLは、各エントリに対して次のようなものです。
SELECT "rs_reputations".* FROM "rs_reputations" WHERE "rs_reputations"."reputation_name" = 'votes' AND "rs_reputations"."target_id" = 8 AND "rs_reputations"."target_type" = 'Post' LIMIT 1
私の posts_controller では、現在ライター (Writer has_many :posts) を積極的にロードしています。
@posts = Post.includes(:writer).paginate(page: params[:page]), :per_page => 10)
これに :votes を追加するにはどうすればよいですか? 私が試してみました
@posts = Post.includes(:writer, :rs_reputation).paginate(page: params[:page]), :per_page => 10)
と
@posts = Post.includes(:writer, :votes).paginate(page: params[:page]), :per_page => 10)
どちらも機能しません。
私の投稿モデルは以下の通りです
post.rb
belongs_to: :writer
has_reputation :votes, source: :writer, aggregated_by: sum