Ruby on rails 在Rails模型范围内强制执行特定顺序
我的rails代码中有一个模型Ruby on rails 在Rails模型范围内强制执行特定顺序,ruby-on-rails,model,Ruby On Rails,Model,我的rails代码中有一个模型M。它有一个字段F,可以有4个值D、J、M和Z 如果我使用这样的范围,它将按字段F字母顺序对数据进行排序: default scope {order (F: :asc)} 我这里有两个问题: 我不想在F上按字母顺序对数据排序。我希望数据以F的特定顺序显示。我总是希望字段F首先包含值M的记录,然后是值J,D的记录,然后是Z,顺序如下。我怎样才能做到这一点 假设我想先显示具有J的记录,然后按字段F的字母顺序对其余记录进行排序,我该怎么做 您可以使用CASE语句进行排序
M
。它有一个字段F
,可以有4个值D
、J
、M
和Z
如果我使用这样的范围,它将按字段F
字母顺序对数据进行排序:
default scope {order (F: :asc)}
我这里有两个问题:
F
上按字母顺序对数据排序。我希望数据以F
的特定顺序显示。我总是希望字段F
首先包含值M
的记录,然后是值J
,D
的记录,然后是Z
,顺序如下。我怎样才能做到这一点J
的记录,然后按字段F
的字母顺序对其余记录进行排序,我该怎么做您可以使用CASE语句进行排序
order("CASE WHEN F = 'M' THEN 0 WHEN F = 'J' THEN 1 WHEN F = 'D' THEN 2 ELSE 3 END")
或者(如果只有“M”需要排在第一位,其余的可以按字母顺序排列)
您可以使用CASE语句进行排序
order("CASE WHEN F = 'M' THEN 0 WHEN F = 'J' THEN 1 WHEN F = 'D' THEN 2 ELSE 3 END")
或者(如果只有“M”需要排在第一位,其余的可以按字母顺序排列)
它们是列
F
的值。它们在数据库的表M
中定义。那么它们的值是什么呢?常数必须有值。D
,J
,M
,Z
-它们是列F
的不同值。它们是列F
的值。它们在数据库的表M
中定义。那么它们的值是什么呢?常量必须有值。D
,J
,M
,Z
-它们是列F
的不同值。当我尝试上述操作时,我发现一个错误函数数组位置不存在。Aldo当我在google中搜索array\u position rails
时,我找不到任何关于这方面的文章或文档array\u position
是一项postgreSQL
功能。我将修改我的答案,给出一个通用的解决方案。好的,不那么紧凑,但更通用,让我知道你进展如何。这很有魅力!多谢!很抱歉延迟了回复。几分钟前我就可以开始尝试了。当我尝试上述方法时,我发现一个错误函数数组\u位置不存在。Aldo当我在google中搜索array\u position rails
时,我找不到任何关于这方面的文章或文档array\u position
是一项postgreSQL
功能。我将修改我的答案,给出一个通用的解决方案。好的,不那么紧凑,但更通用,让我知道你进展如何。这很有魅力!多谢!很抱歉延迟了回复。几分钟前我就可以试一下了。