0

我有2个模型:组和用户在我的rails应用程序。如何通过匹配外键数组来获取对象?

集团有许多用户。

在我的应用程序中,我想使用用户ID数组来检查组是否存在。

我一直在使用这种方法Group.joins(:users).find_by('users.id' => [1,2,3])

尝试,但这种将获取所有包含分别每个用户ID的组对象。

我想实现的是获取与user_id数组完全匹配的组对象。

请帮忙!

回答

0

你可以使用findGroup集合(即的ActiveRecord ::关系)和数组VS每个Groupusers.ids,这样的比较:

Group.find { |group| group.users.ids == [1,2,3] } 

另外,我建议逻辑移动到Group型号:

class Group < ApplicationRecord 
    has_many :users 

    def self.with_users(ids) 
    find { | group| group.users.ids == [1,2,3] } 
    end 
end 

,然后用它是这样的:

Group.with_users([1,2,3]) 
相关问题