DBから取ってきた文字列を表示する際に、URLが混ざっていた場合aタグに置き換えて表示する必要があったためその処理を書きました。
コードはこんな感じです。
require 'uri' def convert_url_into_a_tag(text) text.gsub(URI.regexp(['http', 'https'])) do |text| "<a href='#{text}'>#{text}</a>" end end # 検証用の文字列作成 text = <<EOS 私のブログのURLは http://www.te-nu.com/です! もう一度いいます http://www.te-nu.com/です! EOS # 実行した結果を表示 puts convert_url_into_a_tag(text)
実行結果
私のブログのURLは <a href='http://www.te-nu.com/'>http://www.te-nu.com/</a>です! もう一度いいます <a href='http://www.te-nu.com/'>http://www.te-nu.com/</a>です!
ざっくり解説
String#gsub
と URI.regexp
を組み合わせました。 URI.regexp
でURLを抜き出すための正規表現を取得することができるので、あとは gsub
メソッドで置換を行うことで上手くaタグに変換することができました。
Railsの場合は app/helpers/application_helper.rb
あたりに定義して必要な場合に使ったりするといいんじゃないかなーと思います。