сопоставить все в отношении активных записей в запросе

Мне нужен запрос activerecord для сопоставления ВСЕХ элементов в массиве params.

скажем, пользователь has_many ролей. и у каждой роли есть имя.

когда я сдаю ['актер', 'продюсер', 'певец']. Я ожидаю, что запрос вернет мне пользователей со всеми этими тремя ролями или более.

Но моя реализация метода ниже вернула бы пользователей, у которых было бы по крайней мере одно имя роли, совпадающее с теми в переданном массиве

Мой текущий метод дает результаты, основанные на поиске любого из тегов, а не "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 был возвращен из этого.

Заранее спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос