特定の順序で人のIDを取得するクエリがあります。たとえば、次のようにします。
ids = [1, 3, 5, 9, 6, 2]
次に、それらの人々を取得したいPerson.find(ids)
しかし、それらは常に番号順にフェッチされます。実行することでこれを知っています:
people = Person.find(ids).map(&:id)
=> [1, 2, 3, 5, 6, 9]
順序が ids 配列の順序と同じになるように、このクエリを実行するにはどうすればよいですか?
与えられた ID から一度だけ人を取得するクエリを実行したかったので、このタスクをより困難にしました。したがって、複数のクエリを実行することは問題外です。
私は次のようなものを試しました:
ids.each do |i|
person = people.where('id = ?', i)
しかし、これはうまくいかないと思います。