0
我有2個模型:組和用戶在我的rails應用程序。如何通過匹配外鍵數組來獲取對象?
集團有許多用戶。
在我的應用程序中,我想使用用戶ID數組來檢查組是否存在。
我一直在使用這種方法Group.joins(:users).find_by('users.id' => [1,2,3])
嘗試,但這種將獲取所有包含分別每個用戶ID的組對象。
我想實現的是獲取與user_id數組完全匹配的組對象。
請幫忙!
我有2個模型:組和用戶在我的rails應用程序。如何通過匹配外鍵數組來獲取對象?
集團有許多用戶。
在我的應用程序中,我想使用用戶ID數組來檢查組是否存在。
我一直在使用這種方法Group.joins(:users).find_by('users.id' => [1,2,3])
嘗試,但這種將獲取所有包含分別每個用戶ID的組對象。
我想實現的是獲取與user_id數組完全匹配的組對象。
請幫忙!
你可以使用find
在Group
集合(即的ActiveRecord ::關係)和數組VS每個Group
的users.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])