Rails按特定顺序按多个值激活查询顺序?

我有一张桌子

Roles(id int,,name vachar(50),role enum(CAD,CA,CM,CV )) 

我想要按特定顺序按特定值排序的选择数据。 我的活动模型查询:role.order(’role asc’)然后是结果:

 1 name1 CAD 2 name2 CA 3 name2 CM 

但我希望结果如下:

 1 name1 CAD 2 name2 CM 3 name2 CA 

谁能帮我? 提前致谢

一个可移植的解决方案是使用CASE语句作为ORDER BY中的内联映射:

 query.order(%q{ case role when 'CAD' then 1 when 'CM' then 2 when 'CA' then 3 end }) 

请记住,您可以ORDER BY您想要的任何表达式,CASE肯定是SQL中的表达式。