Подтвердить что ты не робот

Как найти рекорд по максимальной цене?

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

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 и не-AREL в Rails? Руководство по Rails для запроса ActiveRecord просто недостаточно!

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

=== UPDATE ===

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

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

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

4b9b3361

Ответ 1

Как насчет чего-то подобного?

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