gpt4 book ai didi

ruby-on-rails - 在 rails 中使用 includes 时排序依据不排序

转载 作者:数据小太阳 更新时间:2023-10-29 08:48:02 25 4
gpt4 key购买 nike

我的用户模型中有一个距离属性:

attr_accessor :distance

因此,当我计算每个用户的距离并将其存储在距离中时,我可以像这样对它们进行排序:

users.sort_by!(&:distance)

然后根据距离适本地对用户进行排序。但是当我包括其他相关方法时,即:

users.includes(:photo).sort_by!(&:distance)

这根本没有对用户进行排序,这是为什么呢?我怎样才能按距离对它进行排序但同时包括关联?

最佳答案

sort_by! 方法中的 ! 表示对象本身发生了变化,而不是返回一个不同的对象。当您调用 users.includes(:photo) 时,此方法返回一个不同 对象。所以,你实际做的是这样的:

users2 = users.includes(:photo)
users2.sort_by!(&:distance)

这就是为什么在您调用 sort_by! 后用户对象没有排序的原因。一个更好的方法可能是

users = users.includes(:photo).sort_by(&:distance)

关于ruby-on-rails - 在 rails 中使用 includes 时排序依据不排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21483220/

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