这是我不明白的事情。为什么第一个例子不起作用(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
的块?
答案 0 :(得分:0)
proc
也可以在layout
方法中使用args,它需要request
个对象,
另一方面,您可以阅读When to use lambda, when to use Proc.new?,了解proc
和lambda
之间的区别。