我的rails帮助器渲染'<'作为'<'!如何使其正确渲染?

时间:2010-11-05 02:30:19

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-plugins helpers

我正在这里制作一个简单的插件,到目前为止它正在发挥作用。 除了我的助手。 它是一个非常简单的帮助器,它只需要回显一个 <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,它不是用于布局,它只是用于解析。

知道我在这里做错了吗?

3 个答案:

答案 0 :(得分:16)

Rails 3默认在视图中转义HTML。您需要使用raw()帮助器或“HTML string here”.html_safe

答案 1 :(得分:6)

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

答案 2 :(得分:3)

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

module IndexHelper
    def logo
        render(:inline=> "<div class='css_name'></div>")
    end
end