Witam,
Mam ci ja kilka modeli, z których każdy ma polimorficznie wiele fotosów:
[code]class Place < ActiveRecord::Base
has_many :photos, :as => :item
end
class Article …
class Photo < ActiveRecord::Base
belongs_to :item, :polymorphic => true
end[/code]
Dla danego obiektu, powiedzmy klasy Place, chciałbym znaleźć najwyższą wartość pewnego atrybutu w podłączonych pod niego modelach Place. Wymyśliłem coś takiego:
Place.find(123).photos.first(:order => "nr DESC").nr
Niestety to nie działa. Generowane zapytanie (mysql) wygląda następująco:
SELECT `photos`.* FROM `photos` WHERE `photos`.`item_id` = 123 AND `photos`.`item_type` = 'Place' ORDER BY photos.nr, nr DESC LIMIT 1
Wszystko by było pięknie, gdyby było ORDER BY photos.nr DESC albo ORDER BY photos.nr DESC, nr DESC.
W związku z tym chciałbym spytać czy:
- Robię coś źle?
- A może coś jest nie tak w gemie mysql?
- Ewentualnie czy ktoś ma pomysł, jak rozwiązać mój problem bez konieczności szukania maksymalnej wartości w Rubym?
Dzięki i pozdrawiam pre-noworocznie