Masatoshi Nishiguchi
Software Engineer

Select values through many to many relationship in active record

rails active_record postgresql database

This is my memo on Select values through many to many relationship in active record.

Query for grandchildren, through a many to many relationship

I want to obtain all the tags that have a household item belonging to a specific moving, through a many to many relationship.

Tag.joins(household_items: :moving)
   .where(movings: {id: id})
   .select('DISTINCT tags.name')
   .order('tags.name')
# This works but it requires n queries.
household_items.map { |item| item.tags }.flatten.map(&:name).uniq

Select values through many to many relationship in active record using “where”