2015-11-16 2 views
1

У меня есть массив ActiveRecord таблицы Person (: id,: name,: city_id,: work_id,: date). Например, для:Выберите строки с максимальным значением столбца в рельсах

[<Person id: 4, name: John, city_id: 10, work_id: 1, date: 2015-10-10>, 
    <Person id: 5, name: Jack, city_id: 11, work_id: 2, date: 2015-10-08>, 
    <Person id: 8, name: John, city_id: 10, work_id: 2, date: 2015-10-11>, 
    <Person id: 9, name: John, city_id: 10, work_id: 3, date: 2015-10-11>,] 

Для конкретного человека мне нужны строки с максимальной датой. Итак, для Джека я получаю строку с id = 5. Для Джона я получаю строки с id = [8,9], поскольку дата для этих строк максимальна. Я не могу найти эффективный путь к этому в Rails. Пожалуйста помоги.

ответ

1

Вы можете использовать метод класса рельсов maximum.

Попробуйте это:

Person.find_all_by_date (self.maximum ('дата'))

Смотрите некоторые детали here.

+0

Я не хочу, значение максимального момента. Я хочу, чтобы все строки каждого отдельного человека имели максимальную дату во всех его рядах. – Hellboy

+0

Я хочу работать с массивом ActiveRecord, то есть массивом, содержащим строки таблицы Person. – Hellboy

+0

Почему вы хотите использовать массив? Можете ли вы поместить немного больше информации о своей проблеме? Я предполагаю, что вы хотите знать все последние работы, выполненные данным человеком в определенном городе? –

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