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. git add -p でファイルの一部をコミットする【Git】
  2. 【Rails】modelを作成する
  3. 【Blender】アニメーションでポーズを左右反転してコピペしたい時
  4. 【Rails】selectメソッドで特定の条件を満たす要素を取得する
  5. 【Blender】Bumpを使用した質感表現の方法

関連記事

 
  1. Ruby on Rails

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

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

  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. Ruby on Rails

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

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

  6. Ruby on Rails

    【Rails】modelを作成する

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

カレンダー

2025年1月
 12345
6789101112
13141516171819
20212223242526
2728293031  

最近の記事

  1. Blender

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

    【UE4】用語備忘録メモ
  3. Blender

    【Blender】MMDファイルをBlenderにImportするアドオン
  4. WordPress

    【WPテーマ自作】UnderScoresの導入
  5. Blender

    起動時の設定をカスタムする【Blender】
PAGE TOP