我是Rails的初学者。我想问你关于默认范围的问题。为什么default_scope使用' lambda'?请看下面的课程。
Class Category < ActiveRecord::Base
default_scope labmda { order('categories.name') }
end
为什么不使用典型的块而不是lambda?
总结我的问题,
答案 0 :(得分:1)
lambdas基本上是一种保存块或匿名函数的方法(就像你一直在javascript中那样)。如果你不知道一个街区是什么......
[1,3,5,6].map { |n| n * 2 }
大括号中的内容(或do和end语句之间的内容}是一个块。
因此,不是多次重写块,您可以像这样保存它:
my_lambda = lambda { |n| n * 2 }
你可以这样称呼它:
[1,3,5,6].map(&my_lambda)
像塞尔吉奥说的那样,你真的不需要那里的lambda。但是我想你可以将块保存在其他地方,然后将它与default_scope一起用于它和其他几个类。