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 に答える