最近,當我從GitHub嘗試一個開源項目,我碰到有這種怪異的運營商Ruby on Rails的怪異操作
layout ->(c) { request.format == :mobile ? "application" : "centered_with_header_with_footer" }
我的問題是來的時候,也layout ->(c) { }
實際上解析?
由於
最近,當我從GitHub嘗試一個開源項目,我碰到有這種怪異的運營商Ruby on Rails的怪異操作
layout ->(c) { request.format == :mobile ? "application" : "centered_with_header_with_footer" }
我的問題是來的時候,也layout ->(c) { }
實際上解析?
由於
它是一種方法layout
服用字面->(){}
作爲參數的λ。
這是在Ruby 1.9中引入的新lambda語法。這相當於如下:
layout lambda { |c| request.format == :mobile ? ... }
我知道lambda表達式是性感。 :)這是你如何用常規方法來扮演角色。
layout :my_layout
private
def my_layout
request.format == :mobile ? "application" : "centered_with_header_with_footer"
end
此外請確保request.format
實際上返回的符號,因爲你正在比較它。