2010-05-05 4 views
4

У меня есть то, что я думаю, что это очень простая задача (знаменитые последние слова) ...Rails найти все с ассоциацией

У меня есть Category модель, которая has_and_belongs_to_manyEvents. Я хочу создать простой и эффективный запрос, который найдет все категории с 1 или более событиями. (С использованием Rails 3)

Я уверен, что у меня тупой момент здесь - любая помощь оценили :)

ответ

8

Как насчет:

Category.find :all, 
    :conditions => 'id in (select distinct category_id from categories_events)' 

Вы также можете добавить это в качестве имени сферы на ваш Category класс, так что вы можете сказать Category.with_events eg

class Category < ActiveRecord::Base 
    named_scope :with_events, 
    :conditions => 'id in (select distinct category_id from categories_events)' 
end 
+0

Спасибо, сделал трюк красиво. – aaronrussell

Смежные вопросы