Сортировка и поиск по полю, модели которого нет - PullRequest
2 голосов
/ 04 апреля 2011

У меня есть таблица HTML, где я показываю данные из конкретной модели, но я также показываю столбец в таблице HTML, который не принадлежит этой модели. этот столбец идет после некоторого расчета (в этом расчете я использую еще 3-4 таблицы). Я хочу дать сортировку и поиск в этом столбце. У кого-нибудь есть идеи, как лучше всего это сделать?

Обновлен:

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

Ответы [ 3 ]

1 голос
/ 04 апреля 2011

Если вы ищете решение для повышения производительности: просто добавьте новое поле в таблицу, чтобы сохранить результаты расчетов.

В любом случае, вы не сможете решить свою проблему, не загрузив все свои записи.

Или вы можете использовать JavaScript для поиска и сортировки, но только если их не так много.

0 голосов
/ 04 апреля 2011

Я бы создал виртуальный ресурс на модели, который содержит сортировщик в Ruby-коде.Предполагая, что sum является вашей виртуальной собственностью.

def by_sum(options = {})
  @items = self.class.find(options)
  @items.sort! { |a,b| a.sum <=> b.sum }
end

В вашем контроллере вы можете позвонить:

Item.by_sum({:where => "'foo' = 'bar'"})
0 голосов
/ 04 апреля 2011

Вы можете отсортировать свою модель:

q_new.sort! { |x, y|
    y.creation_date <=> x.creation_date
}

creation_date - любое поле или метод модели.

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