如何貪婪加載這些協會預先加載一個查詢對於同一型號的兩個協會
class Pair < ActiveRecord::Base
belongs_to :user
belongs_to :buddy, :class_name => "User"
end
class PairsController < ApplicationController
def show
@pair = Pair.includes(:user, :buddy).find(params[:id])
end
end
查詢如下:
一對負載(3.1毫秒)選擇
pairs
* FROM。pairs
WHEREpairs
。id
= 935029848限制1用戶負載(4.3ms)SELECT users.id從
users
其中users
。id
IN(965902799)用戶負載(0.9ms)SELECT users.id FROM
users
WHEREusers
。id
IN(274512568)
,但我想:
一對負載(3.1毫秒)選擇
pairs
* FROMpairs
WHEREpairs
。id
= 935029848 LIMIT 1用戶負載(4.3ms)SELECT users.id FROM
users
WHEREusers
。id
IN(965902799,274512568)
是不是'選擇users.id來自用戶的WHERE users.id(1)'和'選擇users.id來自用戶的WHERE users.id(2)'相同作爲'SELECT users.id FROM users WHERE users.id IN(1,2)'?這兩種情況下都會產生用'id' 1和2的用戶。我沒有得到區別。 – prasvin 2012-03-14 08:37:48