如题,查了好久都没有找到。 这是 spree 源码中的一部分,参见 https://github.com/spree/spree/blob/master/core/app/models/spree/order.rb#L47
-> 是定义一个 lambda, 功能和 lambda{} 一致。 if: ->(order) { order.payment_required? } 是一个 hash 参数。具体这个参数有什么作用,可以在 https://github.com/spree/spree/blob/master/core/app/models/spree/order/checkout.rb#L128 查到
->
lambda{}
if: ->(order) { order.payment_required? }
#1 楼 @fumesy 这里的 if 不是关键字,是一个 :if key 的意思?
#2 楼 @viciousstar 是的,只要带有 : 都是一个 Symbol
:
Symbol
lam = -> { xxx } go_to :payment, if: lam
谢谢,这种东西真的不好查。