【问题标题】:My rails helper is rendering '<' as '&lt;'! How to make it render correctly?我的 rails 助手将 '<' 渲染为 '<'!如何让它正确渲染?
【发布时间】:2011-05-05 10:14:12
【问题描述】:

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

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

我的插件初始化器:

ActionView::Helpers.send :include, Test

我的插件助手:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:
        module Test    
          def only_for_testing
            render(:html=> "<span></span>")
          end
        end
        

        【讨论】:

          猜你喜欢
          • 2011-03-20
          • 1970-01-01
          • 1970-01-01
          • 2012-01-31
          • 1970-01-01
          • 2011-03-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多