Rails View Helper Not Inserting HTML into Page
I'm having an issue using a custom helper method in my Rails (3.0) app to output the required html.
I have the following call in my partial view: _label.html.erb
<% display_resource "Diamond", @resource.diamond %>
And in the resource_helper.rb file:
module ResourceHelper
def display_resource(display_name, value)
"<tr><td>#{display_name} </td><td>#{value.to_s}%</td></tr>" if value > 0
end
end
The intended output is:
<tr>
<td>Diamond</td>
<td>15%</td>
<tr>
*granted, without the formatting, and the 15 is arbitrary
If I use the <%= ... %> when performing the method call, it'll output the string correctly, but it won't be html (ie I'll see "<tr><td>Diamond </td><td>15%</td></tr>"开发者_StackOverflow中文版
as opposed to "Diamond 15%")
What am I doing incorrectly?
You need to mark the string returned as "raw" and then use <%= %>
module ResourceHelper
def display_resource(display_name, value)
raw("<tr><td>#{display_name} </td><td>#{value.to_s}%</td></tr>") if value > 0 # string wrapped in raw
end
end
精彩评论