module Cell::Ext::ActiveRecord

Attributes

tenant[R]

Public Class Methods

prepended(cls) click to toggle source
# File lib/cell/ext/active_record.rb, line 65
def self.prepended(cls)
  class << cls
    prepend ClassMethods
  end

  cls.after_initialize :_assign_tenant
  cls.around_save :_activate_tenant
end

Public Instance Methods

_activate_tenant() { || ... } click to toggle source
# File lib/cell/ext/active_record.rb, line 49
def _activate_tenant(&block)
  if tenant && tenant != Model.current
    tenant.use(&block)
  else
    yield
  end
end
_assign_tenant() click to toggle source
# File lib/cell/ext/active_record.rb, line 43
def _assign_tenant
  unless self.class.global_model?
    @tenant = Model.current
  end
end
run_validations!() click to toggle source

undocumented, but makes sure validations are ran in the context of the object's tenant, e.g., uniqueness.

Calls superclass method
# File lib/cell/ext/active_record.rb, line 59
def run_validations!
  _activate_tenant do
    super
  end
end