我有named_scope,它在多个ActiveRecord模型中重复使用。例如:
named_scope :limit, lambda {|limit| {:limit => limit}}
提取此代码以跨模型共享的最佳实践是什么?是否可以将其解压缩到模块中,或者我应该重新打开ActiveRecord::Base class?
使用模块。这样的事情应该有效:
module CommonScopes
def self.included(base)
base.class_eval do
named_scope :limit, lambda {|limit| {:limit => limit}}
end
end
end
然后只需包含 CommonScopes,您就可以开始了。
通过
instance_eval@Matt,@see通过模块共享范围?