我发现我可以以多种方式做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一样,但是你可以重写[]方法。 –