我正试图通过急切的加载来优化我的代码,但当函数被调用时,查询会在日志中执行。
@votes_list = Vote.joins(:user => :profile).where(:post_id => post.id)
@male_votes = @votes_list.where(:profiles => { :gender => 1 }).count
@female_votes = @votes_list.where(:profiles => { :gender => 2 }).count
我试图在第一个查询之后进行一些查询,而不需要从数据库中提取,如何做到这一点?
您希望急切地为每次投票加载用户及其配置文件。然后,您可以在档案中按性别选择记忆中的投票子集。
@votes_list = Vote.where(:post_id => post.id, :include => { :user => :profile })
@male_votes = @votes_list.select {|v| v.user.profile.gender == 1}
@female_votes = @votes_list.select {|v| v.user.profile.gender == 2}