Да предположим, че се опитате да подредите този масив от масиви по първия елемент:
[
[ 1, 1 ],
[ 1, 2 ],
[ 1, 3 ]
]
И двата (и няколко други) са валидни резултати, защото имате дублирани ключове за сортиране:
[ [1,1], [1,2], [1,3] ]
[ [1,3], [1,1], [1,2] ]
Срещате същия проблем в базата данни. Вие казвате това:
Така че тези пет стойности могат да се появят в произволен ред и все още да отговарят на зададеното от вас условие ORDER BY. Те дори не трябва да излизат от базата данни в същия ред при две изпълнения на една и съща заявка.
Ако искате последователно подреждане, трябва да сте сигурни, че всеки ред във вашия набор от резултати има уникален ключ за сортиране, така че връзките да бъдат прекъсвани последователно. Това е ActiveRecord, така че ще имате уникален id
наличен, така че можете да го използвате, за да прекъснете връзките си с поръчки:
result = Rom::Leaderboard.order('pvp_vs desc, win_percent desc, id').limit(200)
# --------------------------------------------------------------^^
Това ще ви даде добре дефиниран и уникален ред.