最近,当我从github尝试一个开源项目时,我遇到了这个奇怪的运算符
layout ->(c) { request.format == :mobile ? "application" : "centered_with_header_with_footer" }
我的问题是,layout ->(c) { }
实际解析了什么?
由于
答案 0 :(得分:2)
这是ruby 1.9中引入的一个新的lambda语法。这相当于以下内容:
layout lambda { |c| request.format == :mobile ? ... }
答案 1 :(得分:2)
我知道lambdas很性感。 :)这是您使用常规方法的角色。
layout :my_layout
private
def my_layout
request.format == :mobile ? "application" : "centered_with_header_with_footer"
end
同时确保request.format
实际返回符号,因为您要将其与一个符号进行比较。
答案 2 :(得分:0)
这是一个方法layout
以lambda文字->(){}
作为参数。