为什么 Rubocop 不允许 html_safe 或 raw() Rails

Why Rubocop do not allow html_safe or raw() Rails

这是我没有通过 Rubocop 的代码,因为:

Rails/OutputSafety: Tagging a string as html safe may be a security risk.

def number_with_html_delimiter(num)
   number_with_delimiter(num)
      .gsub!(' ', content_tag(:span, "", class: "numbers-delimiter")).html_safe
end

我需要放置一个带有一些 css 的自定义跨度以将空格放入 HTML 中,当我删除 html_safe 时它不起作用。

请帮忙,提前致谢

html_saferaw() 出于安全目的不安全。您可以通过在使用 html_safe(或 raw)的代码前后使用 # rubocop:disable Rails/OutputSafety# rubocop:enable Rails/OutputSafety 禁用 rubocop raw) 方法。

# rubocop:disable Rails/OutputSafety
def number_with_html_delimiter(num)
   number_with_delimiter(num)
      .gsub!(' ', content_tag(:span, "", class: "numbers-delimiter")).html_safe
end
#rubocop:enable Rails/OutputSafety