tryメソッドとは

オブジェクトがnilでない場合のみ、そのオブジェクトのメソッドを実行したい!って時に使うメソッドです。

 

と出てくる。

 

ちょっとよくわからないので実際に試してみた

 

@bodyに何も定義指定ない場合

[265] pry(#)> @body

=> nil

 

と表示される

[266] pry(#)> @body.name

NoMethodError: undefined method `name' for nil:NilClass

from (pry):29:in `render_page_list'

 

@bodyに何も入ってないから

NoMethodErrorが出てしまう

 

一方tryメソッドを使うと

[262] pry(#)>@body.try(:name)

=> nil

 

と@bodyの中に何も入っていなかったとしても

エラーが起きずnilを返してくれる

 

railsプログラム内でこのように使える