次の配列があります(たとえば):
array = [234,675,11,233,99]
次の ActiveRecord クエリのようなものを実行します。
User.where(id: array)
返される配列はランダムに並べられます。
ただし、返される結果を元の配列の順序に基づくようにしたい (つまり、id=234 を最初に、id=99 を最後にする)。
配列をループして、5 つの個別のクエリを実行できますが、これを行うより良い方法はありますか?
次の配列があります(たとえば):
array = [234,675,11,233,99]
次の ActiveRecord クエリのようなものを実行します。
User.where(id: array)
返される配列はランダムに並べられます。
ただし、返される結果を元の配列の順序に基づくようにしたい (つまり、id=234 を最初に、id=99 を最後にする)。
配列をループして、5 つの個別のクエリを実行できますが、これを行うより良い方法はありますか?
複製:
ActiveRecord.find(array_of_ids)、順序を維持
したがって、基本的にコードは次のようになります。
User.find(ids).order("field(id, #{ids.join(',')})")