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>" 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
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With