有人能简单地向我解释一下uniq和distinct两种方法在使用上的区别吗?
我见过这两种用法都是在类似的背景下使用的,但区别对我来说并不十分清楚。
发布于 2016-09-19 16:48:33
Rails查询的作用类似于数组,因此.uniq产生的结果与.distinct相同,但是
.distinct是sql查询方法.uniq是数组方法注意事项:在Rails中,建议使用5+ Relation#uniq代替Relation#distinct。请参阅Notes.html#active-record-降级
提示
在调用.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发布于 2020-01-22 21:31:42
Rails 5.1从Activerecord关系中删除了uniq方法,并添加了不同的方法.
undefined method subscribed for Array ),就不会有查询链了。发布于 2016-09-19 14:28:25
来自文档
uniq(value = true)Alias forActiveRecord::QueryMethods#distinct
https://stackoverflow.com/questions/39575398
复制相似问题