我發現我可以以多種方式做Model.find
找到一個模型的最有效的方法(假設@user是用戶模型的一個實例):通過ID用Model.find
User.find(2)
=> #<User id: 2, name: "Mike Swift", email: "[email protected]", ... etc ...
OR
User.find(@user)
=> #<User id: 2, name: "Mike Swift", email: "[email protected]", ... etc ...
OR
User.find(@user[:id])
=> #<User id: 2, name: "Mike Swift", email: "[email protected]", ... etc ...
OR
User.find(@user.id)
=> #<User id: 2, name: "Mike Swift", email: "[email protected]", ... etc ...
後面三種方法之間有沒有真正的區別? (我已經知道User.find(n)
會是最快的)我會想象他們都在同一時間工作,但也許我錯了。
我剛更新了這個問題。我已經知道'User.find(n)'是最快的。 '@ user.id'和'@user [:id]'有什麼區別? – Swift
@ user.id表示「調用用戶的方法ID」。 AR爲您制定該方法。您可以覆蓋該方法。 @user [:id]表示「用1個參數(:id)」調用用戶的[]方法「。 AR使它與@ user.id一樣,但是你可以重寫[]方法。 –