使用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