Лучший способ указать конечному пользователю порядок сортировки в Rails - PullRequest
6 голосов
/ 07 апреля 2009

Я ищу предложение о том, как конечный пользователь из файлов представления приложения Rails установил порядок сортировки результирующего набора, возвращаемого методом "поиска" модели. Другими словами, я бы хотел, чтобы пользователь мог выбирать порядок сортировки из списка выбора.

Изначально я думал, что мог бы просто вставить строку, которую я бы добавил в параметр: order, но это кажется плохой идеей с точки зрения безопасности.

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

Спасибо за поиск.

Ответы [ 3 ]

4 голосов
/ 07 апреля 2009

Я бы использовал AR :: Base # column_names для очистки входных данных. Что-то вроде:

@models = Model.find(:all, :order => params[:sort].select({|name| Model.column_names.include? (name) } ).join(',') )

Вы можете расширить это с небольшой предварительной обработкой, чтобы варьировать, хотите ли вы сортировать по возрастанию или убыванию с каждым ключом. Надеюсь, это поможет!

2 голосов
/ 07 апреля 2009

Это может быть за пределами того, что вы ищете, но в последнее время я полагался на javascript, чтобы позаботиться о последующей сортировке для меня. Хорошим сортировщиком таблиц для прототипа является Tablekit (http://www.millstream.com.au/view/code/tablekit),, он ненавязчив, быстр и прост в использовании. Он также включает в себя такие тонкости, как редактирование на месте и изменение размера столбца.

0 голосов
/ 07 апреля 2009

что-то, что рельсы могли скопировать с эшафота cakephp (сортировщик страниц по index () в cakephp)

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