如何从Rails content_tag帮助函数返回原始HTML?

时间:2014-12-29 13:41:12

标签: ruby-on-rails ruby

在我的Rails 4应用程序中,我有这个辅助函数:

def plan_interval
  content_tag(:span) do
    "per" +
    content_tag(:span) do
      links = []
      %w(week month year).each do |i|
        links << link_to(i, nil)
      end
      links.join().html_safe
    end
  end
end

有人可以告诉我如何以原始方式归还吗?现在,我得到的非转义HTML看起来并不漂亮。

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

您正在将从内部content_tag调用返回的安全字符串连接到不安全的字符串"per"。这会导致不安全的字符串被转义。确保所有字符串操作数都是html_safe ,结果字符串是HTML安全的。

def plan_interval
  content_tag(:span) do
    "per".html_safe +
    content_tag(:span) do
      links = []
      %w(week month year).each do |i|
        links << link_to(i, nil)
      end
      links.join().html_safe
    end
  end
end