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. 【Blender】複数バージョンを簡単に管理できる、BlenderLaunche…
  3. 【Rails】selectメソッドで特定の条件を満たす要素を取得する
  4. 【Blender】Bumpを使用した質感表現の方法
  5. 【UE4】用語備忘録メモ

関連記事

 
  1. Ruby on Rails

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

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

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

    Ruby on Rails

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

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

  3. Ruby on Rails

    【Rails】レコードが保存済みか確認するpersisted?メソッド

    レコードが保存されているかどうかでUIの表示を切り替えたり、保存されて…

  4. Ruby on Rails

    【Rails】modelを作成する

    結論rails generateコマンドを使いましょ…

  5. Ruby on Rails

    【Rails】migrationでカラムを追加・削除したい

    migrationファイルでよく使う記述。テーブルにカラムを追加・削…

カレンダー

2026年3月
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

最近の記事

  1. Blenderの複数バージョンを簡単に管理できるBlenderLauncherの使い方

    Blender

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

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

    【Blender】アニメーションでポーズを左右反転してコピペしたい時
  4. Blender

    【Blender】レンダリング結果を新規ウィンドウで開かないようにする
  5. Ruby on Rails

    【Rails】railsでIndex name ‘xxx’…
PAGE TOP