ruby digメソッドについて

こんにちは!yama2_0506です! 今日は共同開発でまた分からないメソッドがあったのでメモしていきます。

Railsのcredentials.ymlに環境変数を下記のように定義していたとします。

#credentials.yml

 email:
   address: test@example.com
   pass: test

定義した環境変数を利用する場合は普通はこのような形になると思います。

Rails.application.credentials.email[:address]

digを用いた場合

digとは・・・ネストしたハッシュから値を取り出すことができるメソッド。

digを用いた場合は下記のように記載することで上記と同様の意味になります。

Rails.application.credentials.dig(:email, :address)

なおこのメソッドはハッシュのkeyが nil であった場合は nil を返すというところが重要であり、keyにnilが想定される場合はdigを使う場面が出てきそうです。

参考:

Hash#dig (Ruby 3.0.0 リファレンスマニュアル)