我想知道是否有办法进行一次查询以获得以下条件:
1)scope :scheduled_for, -> {where.not(:scheduled_for => nil)}
然后
2)scope :sort_by_position, -> {order('position')}
预期结果如下:
注意:位置字段可以是随机的(即Post 1的位置可以是5,但由于其scheduled_for不为空,因此优先于较低位置的帖子。
答案 0 :(得分:0)
您可以在order_by
order_by('scheduled_for IS NULL, position')
scheduled_for IS NULL
返回" 1"如果是," 0"为false,因此NULL值更大(即显示在列表的末尾)