Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
轨道&x2B;Activerecord:如何使用“显示记录”;排名ASC“;首先,然后显示其余的记录;名称ASC";?_Activerecord - Fatal编程技术网

轨道&x2B;Activerecord:如何使用“显示记录”;排名ASC“;首先,然后显示其余的记录;名称ASC";?

轨道&x2B;Activerecord:如何使用“显示记录”;排名ASC“;首先,然后显示其余的记录;名称ASC";?,activerecord,Activerecord,我的奖励表中有两列:排名(整数)和名称(字符串)。我想创建一个范围,以显示所有记录,并以升序(1、2、3…)填充排名列,然后显示其余没有排名的记录,以升序(a、b、c)显示,因此它看起来像这样: 排名:1,名称:“zz” 排名:2,名称:“aaa” 排名:无,名称:“bbbb” 排名:无,名称:“ccc” 排名:无,名称:“ddd” 等等 这似乎不起作用:scope:book\u form\u sort\u order,->{order(“排名ASC,名称ASC”).group(:排名)}有人想

我的奖励表中有两列:排名(整数)和名称(字符串)。我想创建一个范围,以显示所有记录,并以升序(1、2、3…)填充排名列,然后显示其余没有排名的记录,以升序(a、b、c)显示,因此它看起来像这样:

  • 排名:1,名称:“zz”
  • 排名:2,名称:“aaa”
  • 排名:无,名称:“bbbb”
  • 排名:无,名称:“ccc”
  • 排名:无,名称:“ddd”
  • 等等

  • 这似乎不起作用:
    scope:book\u form\u sort\u order,->{order(“排名ASC,名称ASC”).group(:排名)}

    有人想解释一下为什么这个答案有效吗?我不明白。这不是把所有的排名==零的记录放在第一位吗?为什么它会像我希望的那样?
    scope :book_form_sort_order, -> { order("ranking IS NULL, ranking ASC, name ASC") }