Нужна помощь с SQL-запросом в Rails - PullRequest
0 голосов
/ 13 ноября 2010

на моем сайте я пытаюсь отобразить пешеходные маршруты с последними опубликованными изображениями (выделите раздел «Изображение»: http://www.trailheadfinder.com/trail_search/latest_trails). Однако текущий используемый мной запрос показывает следы в порядке"первое" изображение опубликовано. Поэтому, когда новое изображение добавляется позднее, трейл не отображается вверху. У меня есть таблица трейла и таблица трейл-картинки, которые связаны между собой. Вот текущий запрос, который я использую:

@trails_pictures = Trailpicture.find(:all,
                                     :limit => 20,
                                     :include => [:trail],
                                     :select => 'trailpictures.trail_id, trails.name, trails.short_description, trails.city, trails.state, trails.country',
                                     :group => 'trailpictures.trail_id',
                                     :conditions => ["trailpictures.parent_id is NULL"],
                                     :order => 'trailpictures.id DESC')

Любая помощь будет принята с благодарностью!

Спасибо,

Ник,

Ответы [ 2 ]

0 голосов
/ 21 ноября 2010

Я наконец понял это.Вот как это должно быть написано:

@trails_pictures = Trail.find(:all,
                              :joins => 'INNER JOIN trailpictures ON trails.id = trailpictures.trail_id',
                              :limit => 20,
                              :conditions => ["trailpictures.parent_id is NULL"],
                              :select => 'trails.id, trails.name, trails.short_description, trails.city, trails.state, trails.country, max(trailpictures.id)',
                              :group => 'trails.id',
                              :order => 'max(trailpictures.id) DESC')
0 голосов
/ 13 ноября 2010

Вам нужно сделать заказ по созданному.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...