Мне нужен запрос activerecord для соответствия всем элементам в массиве params.соответствует всем активным отношениям записи в запросе
позволяет говорить, что пользователь имеет несколько ролей. и каждая роль имеет имя.
, когда я передаю ['actor', 'производитель', 'singer']. Я ожидаю, что запрос вернет мне пользователей со всеми этими тремя ролями или более.
Но моя реализация ниже метод будет возвращать пользователей, имеющих по крайней мере один роль соответствия имен для тех, кто в массиве прошел
Мой текущий метод дает результаты, основанные на поиске любого из тегов, а не «MATCH ALL»
class User < ActiveRecord::Base
has_many :roles
def self.filter_by_roles(roles)
User.joins(:roles).includes(:roles).where(:roles => {:name => roles})
end
end
Пожалуйста, помогите мне с решением для этого.
Я не хочу делать какие-либо операции массива после проверки запроса, если возвращаемые объекты результата содержат все роли или нет. Это связано с тем, что мне нужно вернуть объект Active Record Relation.
Заранее спасибо.