Ruby on Rails

【Rails】文字列からHTMLタグを取り除く方法

Railsで、ブログや既存のAPIからHTMLタグ入りの文章を取得してくることがあります。
HTMLタグが含まれていると、styleに影響が出てしまったり
タグをエスケープしたりする手間が増えてしまいます。

このような時に、HTMLタグを取り除いて文字列のみを表示させる
strip_tagsというヘルパーメソッドの使い方を紹介します。

公式ドキュメントはこちら
タグを取り除く | Railsドキュメント

結論

  1. view_helperで使う場合
html = '<p>ミミッキュのいる生活</p>'
strip_tags(html)
=> 'ミミッキュのいる生活'

2. controllerで使う場合

html = '<p>ミミッキュのいる生活</p>'

# helperメソッドなので、ApplicationController.helpersから呼び出す
ApplicationController.helpers.strip_tags(html)
=> 'ミミッキュのいる生活'

目次

  1. 結論
  2. 環境
  3. viewで使う場合
    1. view_helperでもそのまま使える
  4. controllerでも使いたい
  5. まとめ

環境

OS: MacOS
メモリ: 32GB

Dependents
Rails6
Ruby 2.6
CentOS7 on Vagrant
Mysql 5.7

viewで使う場合

view側でタグを取り除きたい場合は簡単です。
普通にstrip_tagsを呼び出しましょう。引数に、タグを取り除きたい文字列を指定します。

<% html = '<p>ミミッキュのいる生活</p>' %>
<%= strip_tags(html) %>

view_helperでもそのまま使える

strip_tagsは、ヘルパーメソッドなので
application_helper.rbなどのview_helperの中でも、そのまま呼び出すことができます。

# application_helper.rb

module ApplicationHelper
  def strip_html_tags(html)
    truncate(strip_tags(html), length: 100, omission: '・・・')
  end
end

上のコードは、受け取ったhtmlをタグを取り除き、先頭100文字のみを返すサンプルです。
truncateもまた、helperメソッドなので、helper内でそのまま呼び出すことができます。

controllerでも使いたい

strip_tagsをcontrollerで呼び出したい時もあると思います。
そういった場合、ApplicationController.helpers を使って、strip_tagsを呼び出すことができます。

html = '<p>ミミッキュのいる生活</p>'

# helperメソッドなので、ApplicationController.helpersから呼び出す
result = ApplicationController.helpers.strip_tags(html)

puts result
=> 'ミミッキュのいる生活'

他のhelperメソッドについても同様に呼び出せますので、覚えておきたいですね!

まとめ

今回は、文字列からHTMLタグを取り除くstrip_tagsメソッドについて紹介しました。

helperメソッドは、比較的使用頻度も高いメソッドですが、
contorllerで使いたくなった時に、どうやって呼び出すんだっけ?と、ついつい忘れがちなので気をつけたいです。

また、HTMLタグ意外にも、リンクを取り除いたり文字を切り取ったり
便利なメソッドが揃っているので、これからも少しずつ紹介できればと思います。

また、他にもrailsで使うメソッドの紹介記事を書いていますので
そちらも見ていただければ幸いです!

ピックアップ記事

  1. 【Blender】起動時に強制終了してしまう問題
  2. 【UE4】用語備忘録メモ
  3. 【CSS】おしゃれなラジオボタンを作る
  4. 【Blender】複数バージョンを簡単に管理できる、BlenderLaunche…
  5. 【Rails】selectメソッドで特定の条件を満たす要素を取得する

関連記事

 
  1. Ruby on Rails

    【Rails】railsでIndex name ‘xxx’ on table…

    railsで、dbを変更するためにmigrationを実行した際、in…

  2. Ruby on Rails

    【Rails】RSpecのお作法メモ

    RSpecを書く機会が増えてきたので、記法の備忘録として記事にします…

  3. Ruby on Rails

    【Rails】Factory already registered: エラー

    railsでアプリ開発中、最新のfeatureブランチでリベースして…

  4. railsをproductionモードで実行する

    Ruby on Rails

    【Rails】railsをproductionモードで実行する

    結論--environmentオプションを使用します。…

  5. 【Rails】オブジェクトの中身をログに出力する

    Ruby on Rails

    【Rails】オブジェクトの中身をログに出力する

    オブジェクトの中身をデバッグしたりする時に便利出力結果をみやすい形に…

  6. Ruby on Rails

    【Rails】ActiveStorageで添付ファイルを削除したいときは、purgeを使う

    動作確認するために、active_storageでアップロードした画…

カレンダー

2025年11月
 12
3456789
10111213141516
17181920212223
24252627282930

最近の記事

  1. Blender

    【Blender】zip版のBlenderをBlender Launcherに移…
  2. Blender

    起動時の設定をカスタムする【Blender】
  3. Blenderの複数バージョンを簡単に管理できるBlenderLauncherの使い方

    Blender

    【Blender】複数バージョンを簡単に管理できる、BlenderLaunche…
  4. WordPress

    【WPテーマ自作】ローカル環境でWP開発ができる「Local」の導入
  5. Ruby on Rails

    【Rails】findメソッドで連想配列から指定した値を検索する
PAGE TOP