3

这是我不明白的事情。为什么第一个示例不起作用(ArgumentError),但第二个?

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也可以带 args,至少在layout方法内,它需要request对象,另一方面,您可以阅读何时使用 lambda,何时使用 Proc.new?proc看看和之间有什么区别lambda

于 2012-12-13T01:36:41.077 回答