【问题标题】:How to render HTML from a Rails instance variable?如何从 Rails 实例变量呈现 HTML?
【发布时间】:2011-03-08 01:47:07
【问题描述】:

我有一个要传递给视图的实例变量@body

@body 是一个包含 html 的字符串。

<%= @body %> 呈现字符串,而不是 html。如何在字符串中呈现 html?

可能吗?

提前致谢!

【问题讨论】:

    标签: ruby-on-rails actionview


    【解决方案1】:

    答案不再正确。 Rails 3 会自动为您转义 html,所以当您在控制器中时:

    @error = "<h1>OMG u broke teh intertubez!!111</h1>"
    

    这将输出不转义的 HTML:

    <%= raw @error %>
    

    这两个都会转义 HTML:

    <%= h @error %>
    <%= @error %>
    

    【讨论】:

      【解决方案2】:

      如果@body 中有一些 html,&lt;%= @body %&gt; 会输出一些 html。 在该变量中包含 html 有点奇怪,因为控制器不应该传递任何 HTML(控制器必须与视图无关)。

      这就是我们有一些辅助方法的原因。 创建一个生成一些 html 的辅助方法,并在您的视图中使用它。

      【讨论】:

      • 噢!我正在使用 。我理解与视图无关的事情,这只是一个奇怪的情况,我将一封 html 格式的电子邮件传递给查看。谢谢!
      猜你喜欢
      • 1970-01-01
      • 2017-02-22
      • 2013-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-31
      • 1970-01-01
      • 2012-12-11
      相关资源
      最近更新 更多