这将返回最大值,而不是完整的记录:
self.prices.maximum(:price_field)
目前,我发现这样的记录:
def maximum_price
self.prices.find(:first, :conditions => "price = #{self.prices.maximum(:price_field)}" )
end
这是正确的方法吗?因为上面需要两条SQL语句才能让它工作,总感觉有点不对劲。
附言。此外,我希望如果多条记录具有相同的“最大值”值,那么它应该获得具有最新updated_at
值的记录。那么这将意味着另一个SQL语句?
pps。有谁知道Rails 中 AREL 和非 AREL 事物的良好或详细参考?ActiveRecord 查询的 Rails 指南还不够!
(我正在使用 Rails 3)
===更新===
使用 AREL 我执行以下操作:
self.prices.order("updated_at DESC").maximum(:price_field)
但这只是给出最大值,而不是完整的记录:(
另外,maximum()
真的使用 AREL 吗?