小编gra*_*orm的帖子

如何找到最高价的记录?

这将返回最大信号,而不是完整的记录:

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)

=== UPDATE ===

使用AREL我执行以下操作:

self.prices.order("updated_at DESC").maximum(:price_field)
Run Code Online (Sandbox Code Playgroud)

但是,这仅给出了最大价值,而不是完整的记录:(
而且,是利用maximum()真AREL?

activerecord max arel ruby-on-rails-3

19
推荐指数
1
解决办法
1万
查看次数

标签 统计

activerecord ×1

arel ×1

max ×1

ruby-on-rails-3 ×1