Как найти запись с максимальной ценой? - PullRequest
18 голосов
/ 27 января 2011

Возвращает максимальное значение , а не полную запись:

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. Кто-нибудь знает о хорошем или подробном справочнике для AREL и non-ARELвещи в Rails?Запроса Rails Guide для ActiveRecord просто недостаточно!

(я использую Rails 3)

=== UPDATE ===

Используя AREL, я делаю следующее:

self.prices.order("updated_at DESC").maximum(:price_field)

Но это дает только максимальное значение , а не полную запись: (
Кроме того, действительно ли использование maximum() AREL?

1 Ответ

29 голосов
/ 27 января 2011

Как насчет этого?

self.prices.order("price DESC").first
...