В 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
class, но для объекта ActiveRecord::NamedScope::Scope
.
У меня есть серия из трех областей, которые должны иметь идентичные определения методов.В интересах не повторения кода, как бы я абстрагировал этот блок так, чтобы я мог определить его один раз и передать его каждому named_scope
?