我需要一個activerecord查詢來匹配params數組中的所有項目。匹配查詢中的所有活動記錄關係
可以說用戶has_many角色。每個角色都有一個名字。
當我通過['演員','製片人','歌手']。我希望查詢能夠向我返回具有所有這三個或更多角色的用戶。
但我下面的方法實現將返回用戶提供具有ATLEAST一個角色名匹配的數組中傳遞
我目前的方法,給出了基於發現任何標籤的結果,而不是「匹配所有」
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對象。
在此先感謝。