在rails 2.3.8中实现sanitize simple_format

时间:2010-11-18 18:33:20

标签: ruby-on-rails ruby sanitization sanitize

我创建了一个允许用户输入大量不同数据(帖子,评论等)的应用程序。 simple_format对我来说现在很好,我只是想防止疯狂的东西。在阅读一些指南之前和之后我没有使用过sanitize我仍然对如何实现有点困惑。希望我能在这里找到一些方向。

假设我正在收集@ post.body。如何删除任何<div&gt;可能由用户输入的标签或<script>标签?我假设在视图中它看起来像这样:

<%= sanatize(simple_format @post.body) %>

...但是我在哪里定义哪些标签不被允许?在Post模型中还是在sanitize_helper中?这里的语法是什么?

1 个答案:

答案 0 :(得分:3)

以下是Rails 2.3.8中sanitize方法的文档链接。考虑到这一点,您将能够以这种方式定义允许的标签:

<%= sanitize(simple_format(@post.body), :tags => %w(p span strong)) %>

请注意,您也可以在Rails Initializer中定义它们:

  Rails::Initializer.run do |config|
    config.action_view.sanitized_allowed_tags = 'table', 'tr', 'td'
  end 

我希望你觉得这很有用!