Menu structure with multiple parents?

Hello,

my current menu is based on acts_as_tree which worked just fine so far but now I need some menu items being shown under more than one parent.

Example: menu1 -submenu1 -submenu2 menu2 -submenu1 -submenu3 menu3 -submenu4 -submenu1

I thought about a habtm on the menu model but don't think that's a good idea. Does anyone know a proper solution to this?

What do you guys think of: has_and_belongs_to_many :parents, :class_name => "Menu", :association_foreign_key => "parent_id", :join_table => "menus_parents"

I think it's astoundingly bad UI to have identical options in more than one place - but that's just my opinion.

Unless your Menu model is exceptionally complicated, is it *really* worth the significant boost in both code and SQL complexity just to support this (hopefully uncommon) edge case? DRY is great, but there's a point of diminishing (if not negative) returns...

As to the technical side of the question, you'd want to use a real join model (with has_many :through). How else could you keep track of the position of the repeated items in each of the parent menus?

--Matt Jones