У меня есть следующие отношения:
class Article < ActiveRecord::Base
has_and_belongs_to_many :required_certs, :class_name=>"Certification"
...
end
class User < AR::B
has_and_belongs_to_many :certifications
...
end
Я бы хотел найти всех пользователей, которые имеют те же сертификаты, что и статья. Таким образом, если у статьи есть сертификаты A и B, а у пользователя A, B, C, D, этот пользователь будет возвращен. Пользователей только с А или просто Б не будет. Так что по сути, что-то вроде
User.joins(:certifications).where('certifications.id IN (?)', @article.required_certs.collect{|c| c.id})
Вместо использования оператора IN, я думаю, мне придется использовать AND, потому что мне нужны только пользователи, у которых есть ВСЕ указанные сертификаты.
Я в тупике, поэтому любая помощь будет высоко ценится!
Спасибо