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.