module ScopeDelegation

Constants

VERSION

Public Instance Methods

delegate_scope(name, options) click to toggle source
# File lib/scope_delegation.rb, line 4
def delegate_scope(name, options)
  source      = options[:scope] || name
  association = reflect_on_association(options[:to]) || raise("Unknown association")
  name        = [options[:prefix], name].compact.join("_")

  scope name, Proc.new { |*args|
    joins(association.name).merge(association.klass.send(source, *args))
  }
end