個人的な備忘録となります
目次
データベースのインスタンスにアクセスするとき、.(ドット)+カラム名で値が取得できる理由
Active Record を継承したクラスで作られたインスタンス(オブジェクト)だから、.メソッドを使って値の取得が可能になっているから。
通常のRubyの記法ではないため、ハッシュオブジェクトに対して値を取得したいからドットで書いたらエラーになる。
Rubyにおけるハッシュの値の取得方法
example.rb
hash = {name: 'hoge', email: 'fuga@example.com'}
hash[:name]
=> "hoge"
# .で取得しようとするとエラーになる
hash.name
NoMethodError (undefined method `name' for {:name=>"hoge", :email=>"fuga@example.com"}:Hash)
ARを継承するクラスから作られたオブジェクトにおける値の取得方法
example.rb
# すでにHashクラスが定義されている前提で、Hash.newでインスタンスを作成
hash = Hash.new(name: 'hoge', email: 'fuga@example.com')
hash[:name]
=> "hoge"
hash.name
=> "hoge"