Lindsay Boyd
2006-May-04 10:45 UTC
[Rails] How do I identify the initiating View from within a Helper?
I would like to call a helper method from my View to construct a sidebar menu. The menu is contextual, so ideally I would like to do something like this: View ---- <%= sidebar_menu %> Helper ------ def sidebar_menu case _calling_view_ when ''_view_identifier_'' ... build menu... end end where ''_calling_view_'' is the key that points to the ''_view_identifier_'', if this this makes sense! I could send a parameter with the method call (eg sidebar_menu(''search_screen'')), but I consider this redundant. Is this possile? Is there a better approach? -Lindsay -- Posted via http://www.ruby-forum.com/.
Mark Reginald James
2006-May-04 23:22 UTC
[Rails] Re: How do I identify the initiating View from within a Helper?
Lindsay Boyd wrote:> I would like to call a helper method from my View to construct a sidebar > menu. The menu is contextual, so ideally I would like to do something > like this: > > View > ---- > <%= sidebar_menu %> > > Helper > ------ > def sidebar_menu > case _calling_view_ > when ''_view_identifier_'' > ... build menu... > end > end > > where ''_calling_view_'' is the key that points to the > ''_view_identifier_'', if this this makes sense! > > I could send a parameter with the method call (eg > sidebar_menu(''search_screen'')), but I consider this redundant. > > Is this possile? Is there a better approach?The action name is available as "action_name". As for the view name, all I can see after a quick look through the Rails code is the variable "@first_render". It''ll work, but is undocumented, and so is not guaranteed to work in future versions. -- We develop, watch us RoR, in numbers too big to ignore.