按范围列出结果,其中(字段)不是零第二个条件

时间:2016-09-23 11:32:25

标签: ruby-on-rails-4 named-scopes

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

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

然后

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

预期结果如下:

  • 发布1(9月23日&&位置1)
  • Post 2(9月24日&& Position 2)
  • 第3篇(职位:3)
  • 第4篇(职位:4)
  • 等...

注意:位置字段可以是随机的(即Post 1的位置可以是5,但由于其scheduled_for不为空,因此优先于较低位置的帖子。

1 个答案:

答案 0 :(得分:0)

您可以在order_by

中指定多个条件
order_by('scheduled_for IS NULL, position')

scheduled_for IS NULL返回" 1"如果是," 0"为false,因此NULL值更大(即显示在列表的末尾)