古いバージョンのドキュメントです。最新のバージョンはRails7.0.0

Railsドキュメント(v6.0.2.1)

ぼっち演算

try

説明

オブジェクトがnilの時やメソッドが定義されていない場合はnilを返す
メソッドが定義されている場合はそのメソットを呼び出す

使い方

オブジェクト.try(メソッド)

メソッドが定義されていない場合やオブジェクトがnilの時にnilを返す
@person.try(:name)
# @person.name if @personと同じ
tryを重ねる
@person.try(:spouse).try(:name)
nilの場合
@person.try(:non_existing_method)x
# nil

ソースコード

try!

説明

オブジェクトがnilの時にnilを返し、メソッドが定義されている場合はそのメソットを呼び出す
メソッドが定義されていない場合は例外が発生
Rubyのぼっち演算子と同じ処理で、ぼっち演算子の方が高速なので、ぼっち演算子がおすすめ

使い方

オブジェクト.try(メソッド)

メソッドが定義されている場合はそのメソットを呼び出す
@person.try!(:name)
tryを重ねる
@person.try!(:spouse).try(:name)!
nilの場合
@person.try!(:non_existing_method)x
# nil

ソースコード

&.

説明

オブジェクトがnilの時にnilを返し、メソッドが定義されている場合はそのメソットを呼び出す
メソッドが定義されていない場合は例外が発生
基本的にはtry!と同じ
Ruby2.3以降に追加されたRubyのメソッド

使い方

nil.try(:name) # => nil

メソッドが定義されている場合はそのメソットを呼び出す
@person&.name