ruby-on-rails – 比较对象或只是ID

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 比较对象或只是ID前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在比较像这样的对象时是否有性能提升……
current_user.id == @user.id

与此相比……

current_user == @user

无论性能如何,还有最佳实践理由做一个而不是另一个吗?

解决方法

是的,但几乎没有. ActiveRecord::Base#==这样做:
def ==(comparison_object)
  super ||
    comparison_object.instance_of?(self.class) &&
    id.present? &&
    comparison_object.id == id
end

这本质上是比较ID,但确保对象属于您可能想要的相同类型,例如,如果您仅比较ID,即使其中一个是用户而另一个是产品,它们可能是相同的.

总之,比较模型对象本身是最好的.

原文链接:https://www.f2er.com/ruby/270553.html

猜你在找的Ruby相关文章