我在使用Rails(3.0)应用程序中的自定义帮助程序方法时遇到问题,输出所需的html。
我在部分视图中有以下调用: _label.html.erb
<% display_resource "Diamond", @resource.diamond %>
在resource_helper.rb文件中:
module ResourceHelper
def display_resource(display_name, value)
"<tr><td>#{display_name} </td><td>#{value.to_s}%</td></tr>" if value > 0
end
end
预期输出为:
<tr>
<td>Diamond</td>
<td>15%</td>
<tr>
*授予,没有格式化,15是任意的
如果我使用&lt;%= ...%&gt;在执行方法调用时,它会正确输出字符串,但它不会是html(即我会看到"<tr><td>Diamond </td><td>15%</td></tr>"
而不是“Diamond 15%”)
我做错了什么?
答案 0 :(得分:8)
您需要将返回的字符串标记为“raw”,然后使用&lt;%=%&gt;
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