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】MMDファイルをBlenderにImportするアドオン
  2. 【Rails】findメソッドで連想配列から指定した値を検索する
  3. 【Rails】modelを作成する
  4. 起動時の設定をカスタムする【Blender】
  5. 【Blender】起動時に強制終了してしまう問題

関連記事

 
  1. Ruby on Rails

    【Rails】Factory already registered: エラー

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

  2. Ruby on Rails

    【Rails】development? production? 開発環境ごとに処理を切り分けたい時

    Railsで、開発環境ごとに処理を切り替えたい時の方法を紹介します。ま…

  3. Ruby on Rails

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

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

  4. Ruby on Rails

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

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

  5. Ruby on Rails

    【Rails】selectメソッドで特定の条件を満たす要素を取得する

    selectは、配列に対してブロック内の条件を評価し、真になって要素を…

  6. Ruby on Rails

    【Rails】RSpecのお作法メモ

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

カレンダー

2025年4月
 123456
78910111213
14151617181920
21222324252627
282930  

最近の記事

  1. HTML&CSS

    【CSS】おしゃれなラジオボタンを作る
  2. Blenderの複数バージョンを簡単に管理できるBlenderLauncherの使い方

    Blender

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

    【Blender】MMDファイルをBlenderにImportするアドオン
  4. 慣れれば3分!Bumpノードを使用した質感表現の方法

    Blender

    【Blender】Bumpを使用した質感表現の方法
  5. Blender

    【Blender】zip版のBlenderをBlender Launcherに移…
PAGE TOP