轨道3中的微小mce显示标签

时间:2011-05-27 09:54:58

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

我正在尝试将tinyMCE的内容存储到“detail”coloumn中。

现在,当我显示内容时,会显示所有<p>代码<i>代码等。 这是rails3中的安全功能。

但我不希望显示<p>标记,我希望它以HTML格式呈现。

我发现的一种方法是<%= something.detail.html_safe %>

我认为另一种方式是在模型中创建一个函数,如

def detail_safe
    return self.detail.html_safe
  end

并使用<%= something.detail_safe %>

显示

我需要在许多地方更改<%= %>标记。有更简单的解决方案吗?或者我应该在每个地方手动更换?

谢谢。

2 个答案:

答案 0 :(得分:1)

无论您如何操作,都必须更改所有<%= %>

您的选择是:

<%= something.detail_safe %>
<%= something.detail.html_safe %>
<%= raw something.detail %>

我能想到的唯一其他选择是关闭XSS保护 - 但不要这样做!

答案 1 :(得分:1)

在模型中:

def detail
  self[:detail].html_safe if self[:detail]
end

请注意,执行model_object.detail时,您将始终获得html_safe输出。