0
J'ai ce tableau retourné par une requête activerecord:tableau Ruby tri
SELECT id, value FROM table ORDER BY value DESC
[1054, 86], [1062, 86], [1059, 84]
Et j'ai créé un tableau simple à comparer avec le premier tableau:
array.sort_by! {| object | object.access_count}} .reverse
Mais quand je compare les deux tableaux le résultat est différent:
activerecord => [1054, 86], [1062, 86], [1059, 84]
array.sort_by! => [[1062, 86], [1054, 86], [1059, 84]
Ainsi, dans certains cas, l'affichage de comparaison ne fonctionne pas parce que activerecord trie une façon et sort_by! trie un autre.
Comment puis-je résoudre cela? Merci.
Qu'est-ce que vous essayez d'atteindre en comparant les deux? Pouvez-vous expliquer un peu plus? @ gui12344455 –
Oui, j'utilise rspec pour tester mon code et un test consiste à vérifier si les données retournées sont correctement triées. – gui12344455
Donc vous essayez de tester la méthode 'order' de l'enregistrement actif. En fait, chez RSpec, nous sommes responsables de tester le code écrit par nous. Vous n'avez pas besoin de tester la commande ici. Dans le cas où vous êtes nécessaire d'écrire un cas de test pour l'ordre, Dans la spécification, vous pouvez faire une requête comme 'records = Model.only (: id,: nom) .order (: desc)' et vérifier comme ceci 'expected (response_records) .to eq (enregistrements) ' –