我已经在多个 ActiveRecord 模型中重用了 named_scope。例如:
named_scope :limit, lambda {|limit| {:limit => limit}}
提取此代码以在模型之间共享的最佳实践是什么。是否可以将其提取到模块中,或者我应该重新打开 ActiveRecord::Base 类?
我已经在多个 ActiveRecord 模型中重用了 named_scope。例如:
named_scope :limit, lambda {|limit| {:limit => limit}}
提取此代码以在模型之间共享的最佳实践是什么。是否可以将其提取到模块中,或者我应该重新打开 ActiveRecord::Base 类?
使用一个模块。像这样的东西应该工作:
module CommonScopes
def self.included(base)
base.class_eval do
named_scope :limit, lambda {|limit| {:limit => limit}}
end
end
end
然后只需包括 CommonScopes 就可以了。
@Matt 通过instance_eval, @see通过模块共享范围?