J'ai une requête pour obtenir les ID des personnes dans un ordre particulier, par exemple : ids = [1, 3, 5, 9, 6, 2]
Je veux ensuite récupérer ces personnes par Person.find(ids)
Mais ils sont toujours récupérés dans l'ordre numérique, je le sais par expérience :
people = Person.find(ids).map(&:id)
=> [1, 2, 3, 5, 6, 9]
Comment puis-je exécuter cette requête de manière à ce que l'ordre soit le même que celui du tableau des identifiants ?
J'ai rendu cette tâche plus difficile car je ne voulais exécuter la requête pour récupérer les personnes qu'une seule fois, à partir des ID donnés. Il est donc hors de question d'effectuer plusieurs requêtes.
J'ai essayé quelque chose comme :
ids.each do |i|
person = people.where('id = ?', i)
Mais je ne pense pas que cela fonctionne.