解決したいこと
if文を使わずに、params[:foo][:bar]
のとき、bar
がnilでなければ、`params[:foo][:bar]の値を返したい
また、nilの場合は、nilを返したい。
よくあるエラー
> params[:foo][:bar]
NoMethodError: undefined method `[]' for nil:NilClass
解決策
ActiveSupportのtryを使う。HASHの場合は、:[]
が大事
params[:foo].try(:[], :bar)
参考
http://guides.rubyonrails.org/active_support_core_extensions.html
http://stackoverflow.com/questions/6224875/equivalent-of-try-for-a-hash
Writing Ruby Square Bracket Methods