Как выбрать максимальное дочернее значение в ActiveRecord? - PullRequest
0 голосов
/ 17 ноября 2010

Я даже не знаю, как это сказать, вот пример:

У меня есть две модели,

Chicken   
  id   
  name

EggCounterReadings
  id   
  chicken_id   
  value_on_counter
  timestamp

Я не всегда записываю счет для каждой курицы, когдаЯ делаю подсчеты.

Использование ActiveRecord как мне получить последнее число яиц на одну курицу?

Так что, если у меня 1 курица и 3 подсчета, подсчет будет 1сегодня, 15 завтра и 18 на следующий день.Тот цыпленок снес 18 яиц, а не 34

ОБНОВЛЕНИЕ : Нашел именно то, что я пытался сделать в MySQL.Найдите " Строки, содержащие максимум группы определенного столбца ".Так что мне нужно .find_by_sql("SELECT * FROM (SELECT * FROM EggCounterReadings WHERE <conditions> ORDER BY timestamp DESC) GROUP BY chicken_id")

1 Ответ

1 голос
/ 18 ноября 2010

Учитывая ваш обновленный вопрос, я изменил свой ответ.

chicken = Chicken.first
count = chicken.egg_counter_readings.last.value_on_counter

Если вам не нужна последняя запись, но самый большой урожай яиц, попробуйте следующее:

chicken = Chicken.first
count = chicken.egg_counter_readings.maximum(value_on_counter)

Я считаю, что должен делать то, что вы хотите.

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