Calling methods from an erb template?

Hi,

I am quite new to rails and ruby, and I have a little issue here: I
want to write a helper method which generates some erb code, which I
want to call and then eval from a template.

This is best illustrated with an example. I want a menu bar on a page
like this:

— in the erb template: —
<%
rails_code = do_menu_bar_with([:back, :delete, :comment])
%>
<%= eval(rails_code) %>
— end —

I know this is probably not working, a shitty approach and generally
flawed, but that’s basically what I need.

So now I have two questions, and I am happy for any answer :slight_smile: :

  1. Where would I put this method “do_menu_bar_…”? it surely does not
    work in ApplicationController.

  2. If this method returns erb code, how do I evaluate this after?
    Surely not with eval, I guess …

Thanks in advance & greetings,
Axel.

I can’t possible tell you how to do that, whatever you’re doing (which
is, btw, vry unclear)

here’s what you do, open YourControllerNameHelper.rb in the helpers
folder

module YourControllerNameHelper.rb

def do_menu_bar
#do processing
return “text to render”

end

end

then you use

<%= do_menu_bar %>

Don’t ever eval code in the view… just don’t. Why would you want to
do that anyway?