这返回最大值,而不是完整的记录:
self.prices.maximum(:price_field)
目前,我发现这样的记录:
def maximum_price self.prices.find(:first,:conditions => "price = #{self.prices.maximum(:price_field)}" ) end
这是正确的方法吗?因为上述需要两个sql语句来使它工作,而且它不知何故不是正确的.
PS.另外,如果多个记录具有相同的“最大”值,那么它应该得到最新的updated_at值.那么这将意味着另一个sql语句?
PPS.有没有人知道Rails中的AREL和非AREL内容的详细参考? ActiveRecord查询的Rails指南还不够!
(我使用的是Rails 3)
=== UPDATE ===
使用AREL我做以下:
self.prices.order("updated_at DESC").maximum(:price_field)
但这只给出最大值,而不是完整的记录:(
还有,是否使用maximum()真AREL?
解决方法
这样的东西怎么样?
self.prices.order("price DESC").first