Rails2.0からいろいろ追加されたみたいです。メモ。
strip_tags
タグを全部取り除く。
例
strip_tags("Strip <i>these</i> tags!") # => Strip these tags!
strip_links
リンクのみ(つまりa要素だけ)取り除く
例
strip_links('<a href="http://www.rubyonrails.org">Ruby on Rails</a>') # => Ruby on Rails
sanitize
あらかじめ出力可能であると定義されているHTMLタグとその属性のみを出力する。
デフォルトで許可されているのはこれだけ。
ActionView::Base.sanitized_allowed_tags #=> {"del", "dd", "h3", "small", "big", "sub", "tt", "a", "ul", "h4", "cite", "dfn", "h5", "kbd", "code", "b", "ins", "img", "acronym", # "h6", "sup", "pre", "blockquote", "dt", "br", "p", "strong", "div", "samp", "li", "ol", "var", "em", "h1", "address", "i", "abbr", "h2", "span", "hr"} ActionView::Base.sanitized_allowed_attributes #=> {"name", "href", "cite", "class", "title", "src", "xml:lang", "height", "datetime", "alt", "abbr", "width"}
例
table要素, tr要素, td要素とid属性,class属性,style属性だけ許可する
sanitize @article.body, :tags => %w(table tr td), :attributes => %w(id class style)
configでデフォルトを指定できる。
Rails::Initializer.run do |config| config.action_view.sanitized_allowed_tags = 'table', 'tr', 'td' end