问题
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
回答1:
I presume you're running rails3. Add .html_safe
method call before returning the string:
"<li#{classnames}>#{link_to(key, value)}</li>".html_safe
回答2:
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)
来源:https://stackoverflow.com/questions/3878949/rails-why-does-this-helper-not-output-html-but-rather-html-in-quotes