Обычно вы создаете параметр, который перезагружает страницу с включенным соответствующим фильтром:
<%= link_to('Sort', :order => 'rank') %>
Затем в вашем контроллере есть что-то, что пересортирует список при необходимости:
if (params[:order] == 'rank')
@array.sort_by!(&:rank)
end
Существуют плагины, которые облегчат эту задачу, плюс вам, вероятно, следует выполнить сортировку в базе данных, если у вас есть нумерация страниц.