Proper approach for showing menu based on node
I'd say the best way would be to use Menu Block.  This would allow you to use blocks built in visibility rules.

All you would need to do is create a new menu block, select which menu to display and select which content type it should be displayed on.  The menus get all the functionality of standard menus.

You could also just use the standard block that is created with every menu, check the disabled blocks section for those.  Menu Block however has a few more features.