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]) 
相關問題