26th
Sat
ensureのreturning的な使い方
ActiveSuppreturning
というメソッドがObject
クラスに定義されています。
これを使うと、以下のようにメソッドの最後の式の値が何になるかを
気にせずに記述することができます。
1 def foo 2 returning Article.find(parmas[:id]) do |article| 3 article.foo = 'bar' 4 article.save 5 end 6 end
これと同様のことを、Rubyにあらかじめ用意されているensure
を使っても実現可能です。
1 def foo 2 article = Article.find(params[:id]) 3 ensure 4 article.foo = 'bar' 5 article.save 6 end
ブロックの値がensure
の値を無視する事を利用しています。
posted by
genki
on Sat 26 Jan 2008
at 20:13