Rails 3 中的微型 MCE 显示标签

发布于 2024-11-10 01:57:05 字数 558 浏览 3 评论 0原文

我正在尝试将tinyMCE 的内容存储到“详细信息”列中。

现在,当我显示内容时,它会显示所有

标签 标签等。 这是rails3 中的一项安全功能。

但我不希望显示

标签,我希望将其呈现为 HTML。

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

我认为的另一种方法是在模型中创建一个函数

def detail_safe
    return self.detail.html_safe
  end

,并使用 <%= Something.detail_safe 显示%>

无论哪种方式,我都需要在很多地方更改 <%= %> 标记。有更简单的解决方案吗?还是我应该在每个地方手动更改?

谢谢。

I am trying to store content of tinyMCE into "detail" coloumn.

Now when I display the content it displays wit all the <p> tags <i> tags etc.
This Is a security feature in rails3 .

But I don't want the <p> tags to be displayed , I want it to be rendered as HTML.

One way I found was <%= something.detail.html_safe %>

the other way I thought was to create a function in model like

def detail_safe
    return self.detail.html_safe
  end

and display using <%= something.detail_safe %>

Either ways I need to change the <%= %> tag at many places. Is there an easier solution? Or should I manually change at every place?

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

聊慰 2024-11-17 01:57:05

在模型中:

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

请注意,在这种情况下,当您执行 model_object.detail 时,您将始终获得 html_safe 输出。

In the model:

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

Please note that you will always get html_safe output in this case when you do model_object.detail.

清引 2024-11-17 01:57:05

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

您的选择是:

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

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

Not matter how you do it, you will have to change all of your <%= %>.

Your options are:

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

The only other option I can think of is turning off XSS protection - but don't do that!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文