6

我正在这里开发一个简单的插件,到目前为止它正在工作。除了我的帮手。它是一个非常简单的助手,它只需要回显一个<span></span>以供以后的 javascript 解析。

问题是,它没有正确呈现 html,而是用 html 等效代码替换特殊字符。

我的插件初始化程序:

ActionView::Helpers.send :include, Test

我的插件助手:

module Test    
  def only_for_testing
    render(:text => "<span></span>")
  end
end

当我在视图中调用 only_for_testing 助手时,它不会渲染"<span></span>"它,而是渲染“ &lt;span&gt;&lt;/span&gt;

我尝试删除渲染,仅返回字符串,效果相同。我真的不想为此创建一个部分,因为它是一个非常简单的 html,它不是用于布局,它只是用于解析。

知道我在这里可能做错了什么吗?

4

3 回答 3

16

Rails 3 默认在视图中转义 HTML。您需要使用 raw() 帮助程序或“此处的 HTML 字符串”.html_safe

于 2010-11-05T03:00:07.780 回答
6
module Test    
  def only_for_testing
    render(:html=> "<span></span>")
  end
end
于 2010-11-05T02:34:16.700 回答
3

在 rails 3.2 中,我的助手无法识别 ":html" 符号,但我相信它已被 ":inline" 取代,因为这对我有用

module IndexHelper
    def logo
        render(:inline=> "<div class='css_name'></div>")
    end
end
于 2012-03-25T19:15:39.267 回答