rinkuというgemを使って、ActionView 3.2で自動リンクをする。
ちなみに3.0まではActionView::Helpers::TextHelper
にauto_link
っていうそのものズバリなヘルパメソッドがあったけど、3.1から削除されてしまった。一応それを切り出したrails_autolinkがあるんだけど、rinkuはCで書かれてて速いらしく、GitHubで使われているようなので、今回はこちらを使った。
Gemfile:
gem 'rinku'
hoge.html.erb:
<%= raw Rinku.auto_link(h(some_text)) %>
some_text
がscriptタグを含んでいたら嫌なので、まずh
でエスケープしておき、そのあとにauto_link
でURLをaタグに変換する。そしてそれを自動エスケープせずに出力したいからraw
。
raw
のかわりにString#html_safe
を使ってみたけどうまくいかなかった。両者の違いはなんなんだろう?