Ruby on rails 如何首先按现有布尔属性对结果排序

Ruby on rails 如何首先按现有布尔属性对结果排序,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我有许多带有特色?属性的记录 我想查询所有人,将他们分为特色和非特色,如果可能的话,将他们随机分为两组(随机并显示特色,然后随机分配其余部分) 知道如何在ActiveRecord上执行此操作吗 使用 MySQL 例如:- id featured 1 true 2 false 3 false 4 true 5 false 6 true 我希望所有的特征值先为true,然后为false,但包含true和false组的记录顺序应该是随

我有许多带有
特色?
属性的记录

我想查询所有人,将他们分为特色和非特色,如果可能的话,将他们随机分为两组(随机并显示特色,然后随机分配其余部分)

知道如何在ActiveRecord上执行此操作吗

使用

MySQL

例如:-

id    featured
1      true
2      false
3      false
4      true
5      false
6      true
我希望所有的特征值先为true,然后为false,但包含true和false组的记录顺序应该是随机的

所以我的代码是

User.order("featured DESC, rand()")
生成的o/p为(注意:-组真/假之间的记录顺序可以更改)

使用

MySQL

例如:-

id    featured
1      true
2      false
3      false
4      true
5      false
6      true
我希望所有的特征值先为true,然后为false,但包含true和false组的记录顺序应该是随机的

所以我的代码是

User.order("featured DESC, rand()")
生成的o/p为(注意:-组真/假之间的记录顺序可以更改)


我认为您可能可以先按Rand()对列表进行排序,然后按特征属性对列表进行排序。我认为您可以先按Rand()对列表进行排序,然后按特征属性对列表进行排序。我看不出您的示例
顺序(“特征?,Rand()”)
是如何工作的。你能详细说明一下吗?请检查我编辑的答案,也不要使用以
结尾的列。
ref:-
User.order(“featured,rand()”)
不会首先返回true
s,然后返回fatest。实际上
User.order(“featured,rand()”)。first`返回带有
featured的对象?false
。在这种情况下,使用
DESC
User.order(“精选DESC,rand()”)
仍不适用于我
Dvd.order(“特色描述,随机()”)。首先,
返回一个带有
Characterized:false
的对象。我看不出示例
order(“特色描述,随机()”)
如何工作。你能详细说明一下吗?请检查我编辑的答案,也不要使用以
结尾的列。
ref:-
User.order(“featured,rand()”)
不会首先返回true
s,然后返回fatest。实际上
User.order(“featured,rand()”)。first`返回带有
featured的对象?false
。在这种情况下,使用
DESC
User.order(“精选DESC,rand()”)
仍不适用于我
Dvd.order(“特色描述,随机()”)。首先
返回一个带有
Characterized:false
的对象。
id    featured
4      true
6      true
1      true
5      false
3      false
2      false