Это возвращает максимальное значение, а не полную запись:
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?