📅  最后修改于: 2023-12-03 15:19:41.804000             🧑  作者: Mango
有时候,你需要在 Rails 应用中使用 ActiveRecord 的 order
方法来排序 ActiveRecord 对象。如果你想要将 nil
值移动到结果集的末尾,可以使用 order
方法的 nils_last
选项。
# 返回商品列表,按照价格从低到高排序,将价格为空的商品放到结果集的末尾
@products = Product.order('price ASC NULLS LAST')
在这种情况下,所有价格为空的商品将出现在结果集的末尾。
除了 NULS LAST
,你还可以使用 NULS FIRST
将 nil
值移动到结果集的开头。
你也可以同时使用多个字段进行排序,并将空值放到末尾。
# 返回用户列表,首先按照最后登录时间排序,其次按照用户名排序,将最后登录时间和用户名均为空的用户放到末尾
User.order('last_login_at ASC NULLS LAST, username ASC NULLS LAST')
这是如何使用 Rails Order Nil Last
在你的 Rails 应用中进行排序的介绍。记得在使用该选项时注意语法的正确性,以确保正确地处理 nil
值。