下面的例子:如何從命名範圍擴展中訪問named_scope參數?
named_scope :search, lambda {|my_args| {...}} do
def access_my_args
p "#{my_args}"
end
end
# Call:
Model.search(args).access_my_args
正如你可以看到我想從拉姆達訪問的named_scope擴展的參數。有沒有辦法做到這一點?
更具體的例子:
class User < ActiveRecord::Base
named_scope :by_name, lambda {|name_from_scope| {:conditions => {:name => name_from_scope}}} do
def change_name
each { |i| i.update_attribute(:name, "#{name_from_scope}xyz") }
end
end
end
(我知道有一個find_by_name範圍等等...)。我想使用name_from_scope參數,它是在作用域擴展中的作用域中傳遞的。
您發佈的代碼有兩個塊,並且不會按預期工作。 如果需要將參數作爲參數,您將不能訪問參數嗎? 你能更具體地說明你正在努力完成什麼嗎?它的工作原理是 – nessence 2009-05-19 11:03:44
。請參閱:http://ryandaigle.com/articles/2008/3/24/what-s-new-in-edge-rails-has-finder-functionality - >命名範圍擴展 – spas 2009-05-19 13:28:00