gpt4 book ai didi

ruby-on-rails - Rails : uniq vs. 不同

转载 作者:行者123 更新时间:2023-12-03 09:16:19 34 4
gpt4 key购买 nike

有人可以向我简要解释一下这些方法在使用上的区别 uniqdistinct ?

我见过两者都在类似的上下文中使用,但对我来说区别不是很清楚。

最佳答案

Rails 查询就像数组 ,因此 .uniq产生与 .distinct 相同的结果, 但

  • .distinct是sql查询方法
  • .uniq是数组方法

  • 备注 : 在 Rails 5+ 中 Relation#uniq已弃用,建议使用 Relation#distinct反而。
    http://edgeguides.rubyonrails.org/5_0_release_notes.html#active-record-deprecations
    提示 :
    使用 .includes调用前 .uniq/.distinct可以减慢或加速您的应用程序,因为
  • uniq不会产生额外的 sql 查询
  • distinct会做

  • 但两个结果都是一样的
    例子:
    users = User.includes(:posts)
    puts users
    # First sql query for includes

    users.uniq
    # No sql query! (here you speed up you app)
    users.distinct
    # Second distinct sql query! (here you slow down your app)
    这对于制作高性能应用程序很有用
    提示 :
    同样适用于
  • .size对比 .count ;
  • present?对比 .exists?
  • map对比 pluck
  • 关于ruby-on-rails - Rails : uniq vs. 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39575398/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com