3

これが私にはわからないことです。最初の例が機能しないのはなぜですか(ArgumentError)が、2番目の例は機能しませんか?

class FooController < ActionController::Base
  layout proc { request[:action] == 'index' ? 'foo' : false }
end

class FooController < ActionController::Base
  layout proc { |controller| request[:action] == 'index' ? 'foo' : false }
end

私はを作成していますが、ではprocありませんlambda。そして、私はいつもlambdas正しい議論だけが必要だと思っていました。

ブロックをlambdaどこかに変換しますか?

4

1 に答える 1

0

proc少なくともlayoutメソッド内で引数を取ることもできますが、requestオブジェクトが必要です。一方で、いつラムダを使用するか、いつProc.newを使用するかを読むことができますか? と の違いを確認しprocますlambda

于 2012-12-13T01:36:41.077 に答える