いつクリはてブロ

いつになったらクリエイティブするの?

【Rails】Object#tryメソッドが地味に便利

例えばuser.nameを取得したい場合。userがnilだったらnil.nameになってしまい、そこでNoMethodErrorが出てしまう。tryメソッドを使うとそういうときにちゃんとnilを返してくれるのでラクになる。
参照元記事をコピペ引用すると、

# こういうのが…
user ? user.name : '名無し'
 
# tryメソッドを使うとこうなるよ!!
user.try(:name) || '名無し'

こんな感じ。

userが存在して、かつそのメソッドの真偽を見るときなんかも、tryメソッドですっきり書ける。

#before
user.hidden_info if user && user.admin

#after
user.hidden_info if user.try(:admin)

いぶし銀。