1. ホーム
  2. ruby-on-rails

Ruby ですべてのホワイトスペースをアンダースコアに安全に置き換えるには?

2023-09-12 07:43:12

質問

これは、空白を含むすべての文字列に対して機能します。

str.downcase.tr!(" ", "_")

が、空白を持たない文字列はただ削除されるだけです。

つまり、"New School" は "new_school" に変わりますが、"color" は "" になり、何も変わりません!

どのように解決するのですか?

のドキュメントは tr! と言う

strをString#trと同じ規則で翻訳する。strを返すが、何も変更がなければnilを返す。

を使えば、正しい結果が得られると思います。 tr を使うと正しい結果が得られると思います。