Railsでstrip_tags

[memo]まとまりがないので後でちゃんとかく

phpユーザーにはおなじみのstrip_tagsはRailsにもあるもよう。
ActionView::Helpers::TextHelperにstrip_tagsが定義されてる(Rails1.2

この辺りのSanitizeはRails1系と2系で話が違うような気がするので後でちゃんと確認しておこう。

とりあえずRails1.2において、Full Sanitizer(完全タグ除去)してみる。

HelperなのでViewから呼ぶ分には

<%= strip_tags("<div>ほげほげ</div>")-%>
=>ほげほげ

だけど、Controllerからは使えないので

ApplicationControllerに以下を挿入

  def help
    Helper.instance
  end

  class Helper
    include Singleton
    include ActionView::Helpers::TextHelper
  end

これでController内で

help.strip_tags("ほげほげ")

とすれば、タグの完全除去が出来た。その他のSanitizerはまた後日調べよう。

ついでによく使う「h」はERB::Util.html_escape()らしい。詳しくは↓

参考
http://d.hatena.ne.jp/moro/20080416/1208311316
http://blog.s21g.com/articles/682
http://snippets.dzone.com/posts/show/1799