嗨我目前正在閱讀Rails Recipes,並且有一部分作者在模型中使用範圍,以便控制器可以訪問某些查詢片段而無需向控制器添加查詢因此違反了MVC規則)。有一點他有:Rails 3:在示範中使用帶範圍的lambda
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的範圍中使用嗎?
在範圍:from_canada中,因爲沒有什麼需要在運行時進行評估,所以您應該放棄lambda,它只是'scope:from_canada,其中(:country =>「Canada」)' – Unixmonkey