代码之家  ›  专栏  ›  技术社区  ›  MunkiPhD

Rails视图帮助程序未将HTML插入页面

  •  6
  • MunkiPhD  · 技术社区  · 14 年前

    我在Rails(3.0)应用程序中使用自定义助手方法输出所需的html时遇到问题。

    我的观点是:

    <% display_resource "Diamond", @resource.diamond %>
    

    在资源中_助手.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是任意的

    如果我使用<%=。。。%>在执行方法调用时,它将正确输出字符串,但不会是html(即我将看到 "<tr><td>Diamond </td><td>15%</td></tr>" 与“钻石15%”相对)

    我做错了什么?

    1 回复  |  直到 14 年前
        1
  •  10
  •   geermc4    12 年前

    您需要将返回的字符串标记为“ raw “然后使用<%=%>

    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