比较像这样的对象是否有性能提升......
current_user.id == @user.id
与此相比......
current_user == @user
不管性能如何,还有哪种方法可以做到最好?
答案 0 :(得分:11)
是的,但勉强。 ActiveRecord::Base#==
这样做:
def ==(comparison_object)
super ||
comparison_object.instance_of?(self.class) &&
id.present? &&
comparison_object.id == id
end
本质上比较了id
,但确保对象属于同一类型,这可能是您想要的,例如,如果您只比较id
他们可以即使一个是User
而另一个是Product
,也要相同。
总之,比较模型对象本身是最好的。