【问题标题】:RoR 3 - f.label embeds an <span> tag - howtoRoR 3 - f.label 嵌入 <span> 标签 - howto
【发布时间】:2010-09-29 16:34:37
【问题描述】:

我将如何执行以下操作。

我当前的代码是:

<%= f.label :email, html_escape("<span class=\"big\">Test</span>")   %>

这并没有显示我想要的,因为

<span class=\"big\">Test</span>

显示为文本而不是 HTML

我一直在考虑重写 FormBuilder,但我不知道该怎么做,并且搜索类似的东西并没有解决我的问题。

另外,我想显示变量而不是测试:电子邮件。

我只是想解决我遇到的问题:)

PS。我正在使用 Rails 3.0。

【问题讨论】:

    标签: ruby-on-rails forms ruby-on-rails-3 formbuilder


    【解决方案1】:

    rails 3 中的所有助手都是 html_escape,因此不再需要它。

    不要使用 html_escape ,它可以正常工作。你需要使用原始的

    <%= f.label :email, raw("<span class=\"big\">Test</span>")   %>
    

    或者您可以将此链标记为安全

    <%= f.label :email, "<span class=\"big\">Test</span>".html_safe  %>
    

    【讨论】:

      【解决方案2】:

      您是html_escape'ing 跨度...这就是跨度 html 显示在您的页面上的原因。如果你摆脱它,它只会呈现为 html,这就是你想要的。

      【讨论】:

      • 最初我没有使用 html_escape,标准它被渲染为文本。我需要上述两种方法之一(原始或 .html_safe)
      • 默认情况下,rails 会转义代码中的 html,因此如果您不使用 html_escape 并不意味着 rails 不会为您执行此操作。 @Dave Pirotte 说的对,你在不知情的情况下转义了 html。
      猜你喜欢
      • 2011-05-18
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-03
      • 2010-11-24
      • 1970-01-01
      • 2020-11-21
      相关资源
      最近更新 更多