キャメルケースの文字列をスネークケースに変換するActive Support::Inflectorの「underscore」メソッド

こんにちは!kossyです!




さて、今回はキャメルケースの文字列をスネークケースに変換する「underscore」というメソッドの使い方を
ブログに残してみたいと思います。




Active Support::Inflectorってなに?

ActiveSupport::Inflector によると、

The Inflector transforms words from singular to plural, class names to table names, modularized class names to ones without, and class names to foreign keys. The default inflections for pluralization, singularization, and uncountable words are kept in inflections.rb.

The Rails core team has stated patches for the inflections library will not be accepted in order to avoid breaking legacy applications which may be relying on errant inflections. If you discover an incorrect inflection and require it for your application or wish to define rules for languages other than English, please correct or add them yourself (explained below).

Inflectorは、単語を単数形から複数形に、クラス名をテーブル名に、モジュール化されたクラス名をなしに、クラス名を外部キーに変換します。
複数形化、単数化、および数えられない単語のデフォルトの語形変化は、inflections.rbに保持されます。

Railsコアチームは、誤った語形変化に依存している可能性のあるレガシーアプリケーションの破損を避けるため、語形変化ライブラリのパッチは受け入れられないと述べています。
誤った語形変化を発見し、それをアプリケーションに必要とする場合、または英語以外の言語の規則を定義する場合は、それらを自分で修正または追加してください(以下で説明します)。

単語の形式をよしなに変形してくれる、Railsの便利モジュールという認識で良さそうです。


使い方

使い方は至って簡単です。

$ 'RubyOnRails'.underscore

=> "ruby_on_rails"

キャメルケースの文字列を_で区切った文字列に変換してくれます。



勉強になりました。



参考にさせていただいたサイト

ActiveSupport::Inflector
[Rails5] Active Support::Inflectorの便利な活用形メソッド群|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社