Zab*_*bba 19 activerecord max arel ruby-on-rails-3
这将返回最大信号值,而不是完整的记录:
self.prices.maximum(:price_field)
Run Code Online (Sandbox Code Playgroud)
目前,我发现这样的记录:
def maximum_price
self.prices.find(:first, :conditions => "price = #{self.prices.maximum(:price_field)}" )
end
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?因为上面需要两个SQL语句来使它工作,并且它在某种程度上感觉不对.
PS.另外,我希望如果多个记录具有相同的"最大"值,那么它应该得到具有最新updated_at值的记录.这意味着另一个SQL语句?
PPS.有没有人知道Rails中AREL和非AREL事物的好或详细参考?ActiveRecord查询的Rails指南还不够!
(我正在使用Rails 3)
使用AREL我执行以下操作:
self.prices.order("updated_at DESC").maximum(:price_field)
Run Code Online (Sandbox Code Playgroud)
但是,这仅给出了最大价值,而不是完整的记录:(
而且,是利用maximum()真AREL?
TK-*_*421 30
这样的事怎么样?
self.prices.order("price DESC").first
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14760 次 |
| 最近记录: |