`->` 带作用域的运算符
`->` operator with scopes
下面的->
运算符是什么?
scope :published, -> { where(published: true) }
scope
是一种方法,:published
是作为参数传递的符号,这让我相信 -> { where(published: true) }
构成了下一个参数。由于存在 >
字符,->
不是有效的方法名称。
它被称为 lambda 字面量,只是创建 lamda 的一种简短方式。以下相同:
double = -> (x) { 2 * x }
double.call(10) # => 20
相当于:
double = lambda {|x| 2 * x }
double.call(10) # => 20
如果您不熟悉 lambda,请查看 ruby-doc 了解更多详细信息 http://ruby-doc.org/core-2.0.0/Proc.html#method-i-lambda-3F
此外,请按照 Whosebug 线程进行结帐 What do you call the -> operator in Ruby?
下面的->
运算符是什么?
scope :published, -> { where(published: true) }
scope
是一种方法,:published
是作为参数传递的符号,这让我相信 -> { where(published: true) }
构成了下一个参数。由于存在 >
字符,->
不是有效的方法名称。
它被称为 lambda 字面量,只是创建 lamda 的一种简短方式。以下相同:
double = -> (x) { 2 * x }
double.call(10) # => 20
相当于:
double = lambda {|x| 2 * x }
double.call(10) # => 20
如果您不熟悉 lambda,请查看 ruby-doc 了解更多详细信息 http://ruby-doc.org/core-2.0.0/Proc.html#method-i-lambda-3F
此外,请按照 Whosebug 线程进行结帐 What do you call the -> operator in Ruby?