【问题标题】:Ruby on Rails Helper Method - HTML is displayed as plain textRuby on Rails 辅助方法 - HTML 显示为纯文本
【发布时间】:2011-01-27 20:24:24
【问题描述】:

我的 Rails 应用程序有一个帮助器方法,它返回一个带有 HTML 代码的字符串,用于 Google Groups 订阅表单。不幸的是,它像纯文本一样出现在页面上。如何强制它呈现为 HTML? 提前致谢。

【问题讨论】:

  • 请给我们看一些代码;尤其是 ERB 文件中调用帮助程序并显示结果的位置。

标签: html ruby-on-rails ruby-on-rails-3


【解决方案1】:

你的 helper 的结果需要在 Rails 3 中标记为“html_safe”,否则标签会被转义。

def my_helper
  data = "<p>Hello!</p>"
  data.html_safe
end

【讨论】:

  • 我之前试图接受答案,但它说我需要再等8分钟。现在它让我了。
【解决方案2】:

我想这是 Rails html sanitize 的问题。 来自 Rails 更新日志

你不再需要调用 h(string) 要转义 HTML 输出,它由 所有视图模板中的默认值。如果你 想要未转义的字符串,请致电 原始(字符串)。

试试看

【讨论】:

    【解决方案3】:

    需要注意的一点是,像这样连接多个字符串时

    def custom_check_box(checked)
        '<span class="my-custom-checkbox '+( checked ? 'checked' : '')+'"></span>'.html_safe
    end
    

    在这种情况下,只有最后一部分被标记为 html 安全。确保你得到了完整的东西。

    def custom_check_box(checked)
        ('<span class="my-custom-checkbox '+( checked ? 'checked' : '')+'"></span>').html_safe
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 2013-08-14
      • 2013-09-16
      • 2011-03-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      相关资源
      最近更新 更多