我甚至不确定怎么说这个,所以一个例子:
我有两个型号,
Chicken
id
name
EggCounterReadings
id
chicken_id
value_on_counter
timestamp
当我算数时,我并不总是记录每只鸡的数量。
使用ActiveRecord 如何获得每只鸡的最新蛋数?
因此,如果我有1只鸡和3个计数,那么今天的计数是1,明天是15,第二天是18。那只鸡放了18个鸡蛋,而不是34个鸡蛋
更新:找到我在MySQL中尝试做的事情。找到“The Rows Holding the Group-wise Maximum of a Certain Column”。所以我需要.find_by_sql("SELECT * FROM (SELECT * FROM EggCounterReadings WHERE <conditions> ORDER BY timestamp DESC) GROUP BY chicken_id")
答案 0 :(得分:1)
鉴于您的更新问题,我已经改变了答案。
chicken = Chicken.first
count = chicken.egg_counter_readings.last.value_on_counter
如果你不想要最新的记录,但最大的产蛋率,那么试试这个:
chicken = Chicken.first
count = chicken.egg_counter_readings.maximum(value_on_counter)
我相信应该做你想做的事。