How to check if polymorphic rails has_many collection contains x elements -


i have 4 models:

user (users) caretaker (a different type of user) messagegroup (a group) messagegroupmembership (a join table between messagegroup , (users && caretakers)) 

i trying define method checks if group exists x members(members can user or caretaker).

def group_containing(members)   # return group if messagegroup exists members have members   # passed in , member only. no more. no less. end 

my issue members polymorphic cant quite figure out how best structure active record query.

my classes are:

class user < activerecord::base   has_many :message_group_memberships   has_many :message_groups, through: :message_group_memberships end  class caretaker < activerecord::base   has_many :message_group_memberships   has_many :message_groups, through: :message_group_memberships end  class messagegroupmembership < activerecord::base   belongs_to :member, polymorphic: true   belongs_to :message_group end  class messagegroup < activerecord::base   has_many :message_group_memberships   has_many :members, through: :message_group_memberships   has_many :messages    def group_containing(members)     # method goes here.   end end 

def group_containing(members)   member_ids = members.map(&:id)   meesagegroup.joins(:message_group_memberships).where({:message_group_memberships => member_ids}) end 

try this


Comments