嗨,我目前正在阅读 Rails 食谱,其中有一节作者在模型中使用范围,以便控制器可以访问某些查询片段而无需向控制器添加查询(因此违反了 MVC 规则)。在某一时刻,他有这个:
class Wombat < ActiveRecord::Base
scope :with_bio_containing, lambda {|query| where("bio like ?", "%#{query}%").
order(:age) }
end
我从未使用过 lambda 和 Proc 对象。这是否等同于向范围添加参数,以便从概念上讲它是scope :with_bio_containing(query)
允许我自定义范围,就好像它是一个函数一样?lambda 是否常用于 Rails 的范围?