在比较像这样的对象时是否有性能提升……
@H_502_2@current_user.id == @user.id
与此相比……
@H_502_2@current_user == @user无论性能如何,还有最佳实践理由做一个而不是另一个吗?
解决方法
是的,但几乎没有.
ActiveRecord::Base#==
这样做:
@H_502_2@def ==(comparison_object)
super ||
comparison_object.instance_of?(self.class) &&
id.present? &&
comparison_object.id == id
end
这本质上是比较ID,但确保对象属于您可能想要的相同类型,例如,如果您仅比较ID,即使其中一个是用户而另一个是产品,它们可能是相同的.
总之,比较模型对象本身是最好的.