メモ的な何か。
でもすごい使えるはず。(ていうか役に立った)
よく見る使い方
Hoge.first.try(:name)
# => メソッドや変数の呼び出しで、objがnilでも例外を発生させずに通れる
tryのソースコード見てて気がついたあまり見かけない便利な使い方
Hoge.first.try { |hoge| { id: hoge.id, name: hoge.name } }
# => {:id => 1, :name => 'bar'}
終わりに
複数レコードをまとめて目的のハッシュに変換する方法はmap使えばよかったけど、1レコードをスッキリ書く方法があまり見かけなかったので(需要が無い?)書いておきました。
1レコードを色々なオブジェクトにコネコネするのに一番自由なメソッドだと思います。
追記
というかyield selfなメソッド他に無いんですかね?
結局これしか見つからなかったんですが
追記 2018/03/23
ruby 2.5からそのまんまなメソッド、yield_selfが追加されました
そんな訳で
try => nilかどうか分からん時に安全とってやるメソッド
yield_self => コネコネするメソッド
Hoge.first.yield_self { |hoge| { id: hoge.id, name: hoge.name } }
# => { :id => 1, :name => 'bar' }