Ruby のシンボル名を文字列として使う

使ってみる

シンボルで to_s メソッドを呼び出してみると、シンボル名が文字列になる。とにかく、シンボル名の文字列に変換できる。

f:id:matt-note:20181022134429p:plain

 

逆に、文字列をシンボルに型変換することもできる。

f:id:matt-note:20181022134906p:plain

f:id:matt-note:20181022135102p:plain

 

メソッドを組み合わせると、シンボル名から様々な文字列を作ることができる。

f:id:matt-note:20181022134635p:plain

 

Rails の内部処理

Rails の validates メソッドのソースコードを読んでいたら、以下のように使われていた。ハッシュのキーで使われているシンボル名を文字列にして、バリデータクラスの作成に使うとのこと。

f:id:matt-note:20181022133823p:plain

参考:ActiveModel::Validations::ClassMethods

 

たとえば、validates :name, presence: true のように、ハッシュを渡すと、PresenceValidator クラスを作成して、内部で処理しているとのこと。

f:id:matt-note:20181022141808p:plain