strip_tags helper,tag / tags除了ruby on rails 3

时间:2013-07-10 18:05:20

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

是否可以使用strip_tags制作例外,例如:

strip_tags("<b>Bold</b> no more! <div>hellooo</div>", :except => "<strong>")

或更多标签

strip_tags("<b>Bold</b> no more! <div>hellooo</div>", :except => ["<strong>", "<div>"])

我想从<strong></strong>标记以外的字符串中删除所有标记。

谢谢!

2 个答案:

答案 0 :(得分:1)

直接使用Rails sanitize方法(这是strip_tags调用的方法)。

http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html#method-i-sanitize

# Custom Use (only the mentioned tags and attributes are allowed, nothing else)
<%= sanitize @article.body, tags: %w(table tr td), attributes: %w(id class style) %>

答案 1 :(得分:1)

如果您希望这是全局的,请尝试将此代码添加到config / application.rb

class Application < Rails::Application
  config.action_view.sanitized_allowed_tags = 'table', 'tr', 'td', 'strong', 'div'
end

您的方法调用将保持不变。

如果您希望每次通话,请查看以下答案:

Rails sanitize remove default allowed tags

在那里,你会创建一个新的帮助器方法,它会做同样的事情 - 但是所有额外的废话将在辅助方法中,而不是在每次调用时。