I have a list of tags. I'd like to put labels on the tags (tag the tags?) and group them. group.rb: has_many :tags, tag.rb: has_many :groups, etc.

I would also like to associate groups with other groups. For example, if there are tags "light blue" and "dark blue", they would be grouped in a group called "blue", and there would be a separate group that would contain the tags "dark red", "light purple", AND the _group_ "blue."

Currently I have a table groups and a table tags and a table to link them called groups_tags that consist of group_id and tag_id. What's the best way to implement this in Rails?