Rails 3: сортировка массива по ссылке в представлении - PullRequest
1 голос
/ 19 августа 2011

У меня есть @array и представление, в котором перечислены все элементы массива.Прямо рядом с этим списком я хочу ссылку "Сортировать по рангу".

Я знаю, как отсортировать массив по определенному атрибуту

array.sort {| a, b | a[:rank] <=> b[:rank] }

Но я не знаю, чтоЯ должен вставить представление и контроллер, чтобы он отображал отсортированный массив, как только я нажму на ссылку.

1 Ответ

2 голосов
/ 19 августа 2011

Обычно вы создаете параметр, который перезагружает страницу с включенным соответствующим фильтром:

<%= link_to('Sort', :order => 'rank') %>

Затем в вашем контроллере есть что-то, что пересортирует список при необходимости:

if (params[:order] == 'rank')
  @array.sort_by!(&:rank)
end

Существуют плагины, которые облегчат эту задачу, плюс вам, вероятно, следует выполнить сортировку в базе данных, если у вас есть нумерация страниц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...