【Rails】gsubメソッドでカラム内の文字列の一部を削除する

仕事でString型のカラムに格納されている文字列のうち、一部だけ削除するよう依頼がありました。

やり方を備忘録としてまとめます。

バージョン

  • Ruby 3.1.4
  • Rails 6.1.7.7

記事の信頼性

  • ぼくは独学で未経験から従業員300名以上の自社開発企業へ転職しました。
  • 実務ではVue.jsとRailsを毎日書いています。
  • 初心者や駆け出しエンジニアがつまづくポイントも身をもってよく理解しています。
目次

問題

「あるユーザーのプロフィール画面に表示されているURLを削除してほしい」という依頼がありました。

調べたところ、Userテーブルのintroduction(自己紹介)カラムのデータがプロフィール画面に表示されていました。

introductionカラムには自己紹介の内容が格納されており、その中からURLの文字列だけを削除しないといけません。

解決方法

結論として、gsubメソッドを使い、Railsコンソール上で以下の手順を踏むことで、URLの文字列だけを削除することができました。

# 対象ユーザーを取得(user_idは仮)
user = User.find_by(user_id: 1234567)
# 対象ユーザーの自己紹介文を確認
user.introduction
# 削除したいURLを空文字に置換する
user.introduction = user.introduction.gsub("https://example.com//", "")
# 変更をDBに保存する
user.save

gsubメソッドは、第1引数で指定した文字列 or 正規表現にマッチする部分を、第2引数で指定した文字列に置換するメソッドです。

gsubメソッドを使うことで、特定のカラムに含まれる文字列のうち、一部だけを削除することができました。

おわりに

「文字列の一部だけを削除 = 文字列の一部を空文字に置換」と気づければ、すぐできましたね。

参考文献

Railsエンジニアにおすすめの記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

未経験でSESから従業員300名以上の自社開発企業に転職しました。業務や個人開発で直面した問題や、転職・学習の経験を発信していきます。

コメント

コメントする

目次