【发布时间】:2021-04-16 13:02:34
【问题描述】:
首先,我找到了用可能的 nil 值对值进行排序的帖子,还有其他要按降序排序的帖子,但我没有找到两者的解决方案。
这是我所在的地方:
@records = @records.to_a.sort_by do |r| [-r.optimized_all_count, [r.year ? 1 : 0, r.year]] end
这很好用,但我希望“年份”比较器是递减的。我对此进行了测试:
-[r.year ? 1 : 0, r.year]
但符号“-”不适用于 nil 值。我也试过a.reverse...
如何获得年份参数降序(并保持-r.optimized_all_count 作为第一个排序参数),理想情况下:
2020, 2018, 2017...nil, nil, nil.
谢谢
【问题讨论】:
-
@records.to_a– 是否偶然涉及到数据库查询? -
'to_a' 不是必需的,是的,它是一个 AR 数据库查询。
-
您是否考虑将排序委托给数据库?