LoginSignup
0
0

More than 5 years have passed since last update.

ActiveSupportのtryメソッド

Last updated at Posted at 2016-12-01

メモ的な何か。
でもすごい使えるはず。(ていうか役に立った)

よく見る使い方

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' }
0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0