Рельсы находят все с ассоциацией - PullRequest
4 голосов
/ 05 мая 2010

У меня есть, на мой взгляд, очень простая проблема (знаменитые последние слова) ...

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

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

1 Ответ

8 голосов
/ 05 мая 2010

Как насчет:

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

Вы также можете добавить это как именованную область в свой класс Category, чтобы вы могли сказать Category.with_events например,

class Category < ActiveRecord::Base
  named_scope :with_events, 
    :conditions => 'id in (select distinct category_id from categories_events)'
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...