概要
Object#try
詳細
Object#tryについて
Object#try
nilでは無い時だけメソッドを実行したい場合に利用する。
nilの場合は例外は発生せず、nilを返却する
Object#tryはメソッドが存在しない場合にエラーにならない。(nilを返却する)
Object#try!はメソッドが存在しない場合にエラーになる。
サンプル
# encoding: utf-8 require "active_support/core_ext/object/try" class Hoge def hoge "hoge" end end def get_hoge(is_nil) is_nil ? nil : Hoge.new end [true, false].each do |is_nil| p get_hoge(is_nil).try(:hoge) end
出力
nil "hoge"