📜  rails order nil last - Ruby (1)

📅  最后修改于: 2023-12-03 15:19:41.804000             🧑  作者: Mango

Rails Order Nil Last - Ruby

有时候,你需要在 Rails 应用中使用 ActiveRecord 的 order 方法来排序 ActiveRecord 对象。如果你想要将 nil 值移动到结果集的末尾,可以使用 order 方法的 nils_last 选项。

# 返回商品列表,按照价格从低到高排序,将价格为空的商品放到结果集的末尾
@products = Product.order('price ASC NULLS LAST')

在这种情况下,所有价格为空的商品将出现在结果集的末尾。

除了 NULS LAST,你还可以使用 NULS FIRSTnil 值移动到结果集的开头。

你也可以同时使用多个字段进行排序,并将空值放到末尾。

# 返回用户列表,首先按照最后登录时间排序,其次按照用户名排序,将最后登录时间和用户名均为空的用户放到末尾
User.order('last_login_at ASC NULLS LAST, username ASC NULLS LAST')

这是如何使用 Rails Order Nil Last 在你的 Rails 应用中进行排序的介绍。记得在使用该选项时注意语法的正确性,以确保正确地处理 nil 值。