0

我想優化我的代碼與急切加載,但是當調用函數時,在日誌中執行查詢。在哪裏功能相當於加載軌道熱心

@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 

我想在第一個之後做幾個查詢,而不需要從數據庫中獲取,怎麼做?

回答

2

您希望爲每個投票熱切加載用戶及其配置文件。然後,您可以選擇在配置文件中按性別細分的內存中的投票子集。

@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} 
+0

謝謝,按我期望的工作:) –