scope :sorted, -> { order(:name) }
看上感觉好像是 coffeescript 里的方法定义
method = (xx) ->
xxxxxx
有人知道吗给个 reference
google 对这个特殊字符搜索没反应
->
?现在“必须”用这种 lambda 来定义 scope 了,因为之前的这种方式有问题:
scope :sorted, where(xxx)
不使用 lambda 或 Proc 而使用上面这种方式的话,条件是在代码加载的时候就求出来的。很多 bug 是由这个问题引起的。
#11 楼 @hlxwell 前缀运算符只有 +
, -
, ~
鱼骨运算符 >-+->
, 飞碟运算符 <-+->
, 射箭运算符 >>-->
:
class Proc
def -@; self; end
def +@; self; end
end
Cat = Struct.new :fish
class Cat
def > p; self.fish += p[]; end
def < p; self.fish -= p[]; end
def >> p; self.fish = p[]; end
end
Cat[1] >-+-> {0_0}
Cat[1] <-+-> {0_0}
Cat[1] >>--> {0_0}