0

我想知道是否有一种方法可以进行一次查询以获得以下条件:

1)scope :scheduled_for, -> {where.not(:scheduled_for => nil)}

然后

2)scope :sort_by_position, -> {order('position')}

预期结果将是以下列表:

  • 发布 1(9 月 23 日 && 职位 1)
  • 发布 2(9 月 24 日 && 职位 2)
  • 帖子 3(位置:3)
  • 帖子 4(位置:4)
  • ETC...

注意:位置字段可以是随机的(即帖子 1 的位置可能为 5,但由于它的 schedule_for 不为空,它优先于较低位置的帖子。

4

1 回答 1

0

可以指定多个条件order_by

order_by('scheduled_for IS NULL, position')

scheduled_for IS NULL如果为真则返回“1”,“0”为假,因此 NULL 值更大(即显示在列表末尾)

于 2016-09-24T15:38:28.667 回答