0

我有以下数组(例如):

array = [234,675,11,233,99]

我比运行以下 ActiveRecord 查询:

User.where(id: array)

返回的数组将随机排序。

但是,我希望返回的结果基于原始数组的顺序(即 id=234 是第一个,id=99 是最后一个)。

我可以在数组上循环并触发 5 个单独的查询,有更好的方法吗?

4

1 回答 1

2

复制:

ActiveRecord.find(array_of_ids),保留顺序

所以基本上代码应该是:

User.find(ids).order("field(id, #{ids.join(',')})")

于 2013-02-24T15:19:12.103 回答