Сортируемый столбец по отображаемому тексту - PullRequest
0 голосов
/ 12 октября 2018

Итак, я довольно плохо знаком с рельсами и унаследовал большой активный проект рельсов для разработки.Текущая ошибка, над которой я работаю, довольно сложная и довольно сложная, но в основном у меня есть список пользователей, которые могут обращаться к различным программам.В процессе приложения статус приложения пользователя изменяется в базе данных по-разному (например, «применен», «ожидает рассмотрения», «утвержден», «отклонен» и т. Д.).Важно, чтобы он оставался таким же для других функций.Теперь есть страница, которая перечисляет всех пользователей и их статус приложения, но администраторы хотят, чтобы отображался только логический (то есть, если он не утвержден, то отображается «Не одобрен»), который у меня работает правильно;однако, если они сортируют столбец, он сортируется по значениям в базе данных, а не по отображаемым значениям и, таким образом, выглядит поврежденным.Например:

Не утверждено (применено) Одобрено (одобрено) Не ​​утверждено (отклонено) Не ​​утверждено (отложено)

Так есть ли способ:

A) Весразличные статусы, так что все «Нет» отображаются вместе, или B) Сортировка по отображаемым значениям, а не значениям базы данных

Я играл с созданием чистого решения javascript, но в этом списке есть разбиение на страницы, и javascript будет только сортироватьвидимая страница.

1 Ответ

0 голосов
/ 12 октября 2018

Вы можете сделать это либо на уровне Ruby, либо на уровне базы данных.

Если вам важна производительность, поэтому я думаю, что уровень db будет подходящим решением.

УРОВЕНЬ Рубина.

@users = User.all.sort_by { |u| u.status == 'approved' }

УРОВЕНЬ БД.

User.all.order("(case when status = 'approved' then 0 else 1)")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...