named_scope в рельсах 2

У меня есть две модели.. Member и MemberMeeting.

Пользователь has_many member_meetings.

Я написал named_scope в модели Member так, чтобы она выполняла операцию соединения с member_meetings.

Теперь самая сложная часть,

У меня есть логическая колонка XYZ. Мне нужно проверить количество (xyz=true) > 1 внутри named_scope

2 ответа

Решение

Вы уверены, что хотите масштаб для этого? Я предполагаю, что вы хотите получить список всех участников, которые проводят более одной встречи, где xyz верно, верно? В этом случае, что-то вроде этого должно сделать:

members = Member.include(:member_meetings)
members.select{ |m| m.member_meetings.select(&:xyz).size > 1 }

Добавление этого named_scope в Member должно сделать это:

named_scope :my_scope, :include => :member_meetings, :conditions => { 'member_meetings.xyz' => true }
Другие вопросы по тегам