Ruby on rails - 如何从 ActiveRecord 模型中提取常见named_scopes



我有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通过模块共享范围?

相关内容

  • 没有找到相关文章