have you looked at acts_as_tree? http://api.rubyonrails.com/classes/ActiveRecord/Acts/Tree/ClassMethods.html
but got an "uninitialized constant MenuItem" error.
because you haven't defined an actual MenuItem model class and associated it with the Menu. i've never gone this route, but i think the has_many :through method in the api docs uses this technique.
It seems like it should be loading the menu_items. Is there a way to do something like print_r in php to see what is in the variable?
try Marshal.dump( menu )