Помощь в ActiveRecord найти с включенными условиями - PullRequest
1 голос
/ 17 августа 2010

У меня есть Coach Модель, которая:

has_many :qualifications

Я хочу найти всех тренеров, у которых attribute_id равно nil, а у них qualifications. Нечто похожее.

def requirement
    legal_coaches = []
    coaches = find_all_by_attribute_id(nil)
    coaches.each do |coach|
        legal_coaches << coach if coach.qualifications.any?
    end
    legal_coaches
end

Есть ли способ собрать все такие записи в одну строку?

Ответы [ 2 ]

1 голос
/ 17 августа 2010
find_all_by_attribute_id(nil).select(&:qualification) 
0 голосов
/ 17 августа 2010

Я думаю, что вы не можете сделать это с помощью чисто рубинового синтаксиса. Я могу думать только о следующем (безобразном) пути

Coach.find(:all, :conditions => "attribute_id IS NULL AND EXISTS(SELECT * FROM qualifications WHERE coach_id = coaches.id)")
...