Сортировка получает два элемента, и сортировка выполняется по результатам сравнения этих элементов.
Это сравнение должно возвращать -1, 0, 1.
0 для равных, -1 первое <второе и +1 первое> второе.
В большинстве случаев вы можете использовать встроенную функцию ruby <=>
Например:
my_array = [{id:1,priority_score:2},{id:3,priority_score:5},{id:4,priority_score:3.5}]
# Sort ascending
cr = my_array.sort {|a,b| a[:priority_score] <=> b[:priority_score]}
#[{:id=>1, :priority_score=>2}, {:id=>4, :priority_score=>3.5}, {:id=>3, :priority_score=>5}]
# Sort descending
de = my_array.sort {|a,b| b[:priority_score] <=> a[:priority_score]}
#[{:id=>3, :priority_score=>5}, {:id=>4, :priority_score=>3.5}, {:id=>1, :priority_score=>2}]