ActiveRecord-先按字母顺序,然后再按数字

时间:2018-10-13 17:43:03

标签: ruby-on-rails

假设我有一个集合产品,其中“ name”具有以下值:

  • 很棒的运动鞋
  • 无聊的雨伞
  • 420个产品

以下代码:

@products.reorder('name ASC') # I really need to use reorder in my code

将按原样列出结果:

  • 420个产品
  • 很棒的运动鞋
  • 无聊的雨伞

我应该对reorder()进行以下调整以使其具有以下顺序:

  • 很棒的运动鞋
  • 无聊的雨伞
  • 420个产品

2 个答案:

答案 0 :(得分:1)

@products.reorder("(name ~ '^[0-9]'), name")

说明: FALSE在TRUE之前排序,因此数字值将是最后一个。

答案 1 :(得分:0)

@products.reorder("(name !~* '^[a-z]'), name")