2011-06-26 3 views
1

У меня есть поле priority с четырьмя вариантами: «Срочно», «Высокий», «Обычный» и «Низкий».will_paginate - особый заказ

У меня есть это поле отображается в таблице записей, и я использую упорядоченность will_paginate, как показано ниже:

@projects = @company.projects.paginate :page => params[:page], :order => (sort_column + " " + sort_direction) 

private 
def sort_column 
    ['priority', 'name'].include?(params[:sort]) ? params[:sort] : "priority" 
end 

Типичный порядок, как и выше даст мне:

  1. High
  2. Низкий
  3. Срочно

Этот порядок неправильный. Как я могу получить этот столбец для того чтобы специфически специфически к Срочный, Высокий, Нормальный, Низкий?

ответ

2

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

0

Я хотел бы предложить вам взглянуть на эту screencast.

Это столбцы сортировки данных очень легко реализовать.

Надеюсь, это поможет вам.

0

Да, ваша БД сортирует приоритет в лексикографическом порядке. Самое простое решение состоит в том, чтобы сопоставить эти приоритеты строк с целыми приоритетами и отсортировать по ним - как предположил @jdc.

Я бы, вероятно, старался держаться подальше от хранения приоритетов в отдельной таблице, чтобы вам не нужно было присоединяться и просто сохранить числовой приоритет в новом столбце.

Но идея такая же.

Смежные вопросы