【发布时间】:2010-02-04 00:37:47
【问题描述】:
在 Rails 中,您可以在 named_scope 之后添加一个块,用于其他上下文相关的方法,如下所示:
class User < ActiveRecord::Base
named_scope :inactive, :conditions => {:active => false} do
def activate
each { |i| i.update_attribute(:active, true) }
end
end
end
在此示例中,activate 方法不是在 User 类上定义的,而是在 ActiveRecord::NamedScope::Scope 对象上定义的。
我有一系列三个范围,它们需要具有相同的方法定义。为了不重复代码,我将如何抽象该块以便我可以定义一次并将其传递给每个named_scope?
【问题讨论】: