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
Post a Comment