railsがんばる子

Ruby on Railsがんばる子です。胡蝶蘭のECサイトを運営しています。

ruby Arrayでfindするときに初期値が欲しい時はProc.newの引数に値を渡す。

Arrayでfindするときに初期値が欲しい時はProc.newの引数に値を渡す。

Arrayがfindしたときに、要素がない場合に呼ばれるオブジェクトをifnoneという引数で渡してあげることで、渡されたオブジェクトのcallが呼ばれます。

callを持つインスタンスを渡してあげればよいのです。

ary.find(ifnone=Proc.new{{}}) { |item| item.id=="hoge1" }