加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 19:17:02 所属栏目:百科 来源:网络整理
导读:在比较像这样的对象时是否有性能提升…… current_user.id == @user.id 与此相比…… current_user == @user 无论性能如何,还有最佳实践理由做一个而不是另一个吗? 解决方法 是的,但几乎没有. ActiveRecord::Base#== 这样做: def ==(comparison_object) su
在比较像这样的对象时是否有性能提升……
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,即使其中一个是用户而另一个是产品,它们可能是相同的.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读