Отдельные рельсы

В видео много событий

Я пытаюсь получить все видео, в которых запланированы мероприятия в будущем.

У меня есть это, которое уже было там:

named_scope :scheduled_in_future, :joins => :event, :conditions => ["event.scheduled_start > ? AND event.status = ?", Time.now.to_i, 'PENDING']

Это работает, но если одно и то же Видео имеет несколько событий в будущем, оно даст мне дубликаты Видео. Конечно, я могу просмотреть массив и отсеять дубликаты, но для этого должен быть способ SQL.

Я попытался добавить в

:select => "DISTINCT(video.id)"

но он возвращает только поле идентификатора вместо всей записи.

6 голосов | спросил bmck 20 Jpm1000000pmThu, 20 Jan 2011 19:24:59 +030011 2011, 19:24:59

2 ответа


0

Попробуйте использовать :include вместо :joins и вы не должны видеть больше повторяющихся результатов видео.

Кроме того, вы должны использовать лямбду в вашем named_scope, иначе Time.now будет кэшироваться при первом использовании, и вы ' Я начну получать неверные результаты.

named_scope :scheduled_in_future, lambda {
  { 
    :include => :events,
    :conditions => ["event.scheduled_start > ? AND event.status = ?", Time.now.to_i, 'PENDING']
  }
}
ответил Dylan Markow 20 Jpm1000000pmThu, 20 Jan 2011 19:45:39 +030011 2011, 19:45:39
0

Вы пробовали группировать по идентификатору видео?

ответил noodl 20 Jpm1000000pmThu, 20 Jan 2011 19:44:36 +030011 2011, 19:44:36

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132