views:

32

answers:

2

Hello,

I have the following helper in my application_helper.rb file:

  def topmenu
    pages = {
      "projects" => projects_path,
      "photos" => photos_path
    }
    pages.map do |key, value|
      classnames = %( class="current") if controller.controller_name == key
      "<li#{classnames}>#{link_to(key, value)}</li>"
    end
  end

Then in my application.html.erb file I have:

<%= topmenu %>

For some reason, the page is generating showing the HTML from the above helper as TEXT, not HTML. Not sure why? thx

+4  A: 

I presume you're running rails3. Add .html_safe method call before returning the string:

"<li#{classnames}>#{link_to(key, value)}</li>".html_safe
Eimantas
Very nice thanks. Couldn't find that anywhere. Damn google
AnApprentice
A: 

It makes the code more clean? Isn't it? And you can do more thing in the help function(because it is not only a html)

Tsung.W