我渴望加載與其關聯的模型對象:Rails的預先加載和where子句
user= User.includes(:posts).find(1)
但隨後在代碼中的某些點我願做這樣的事情:
user.posts.where(:topic => "x")
但是,只是再次運行查詢。所以相反,我想我會這樣做:
user.posts.select{|post| post.topic == "x" }
這不會重新運行查詢。但我有幾個問題。
首先,這是正確的做法嗎?
其次,我對這種情況下select做了些什麼感到困惑。因爲當我運行最後一行時,即使我沒有使用includes函數,它第一次運行查詢,然後如果我再次運行它,它不......所以有某種緩存涉及? 因爲當我使用where子句它每次運行查詢。
謝謝。
這是完美的,謝謝! – user1069624 2013-03-20 14:34:33