Module: PgMultitenantSchemas::Rails::ControllerConcern

Extended by:
ActiveSupport::Concern
Defined in:
lib/pg_multitenant_schemas/rails/controller_concern.rb

Overview

Controller concern for Rails integration

Defined Under Namespace

Classes: VirtualTenant

Instance Method Summary collapse

Instance Method Details

#current_schemaObject



23
24
25
# File 'lib/pg_multitenant_schemas/rails/controller_concern.rb', line 23

def current_schema
  PgMultitenantSchemas::Context.current_schema
end

#current_tenantObject

Instance methods



19
20
21
# File 'lib/pg_multitenant_schemas/rails/controller_concern.rb', line 19

def current_tenant
  @current_tenant || PgMultitenantSchemas::Context.current_tenant
end

#resolve_tenant_contextObject



32
33
34
35
36
37
38
39
40
41
42
# File 'lib/pg_multitenant_schemas/rails/controller_concern.rb', line 32

def resolve_tenant_context
  # Try to resolve tenant from cookie/session first (for development mode)
  tenant = resolve_from_cookie_fallback(request)

  # If no tenant from cookie/session, use normal resolution
  tenant = PgMultitenantSchemas::TenantResolver.resolve_tenant_with_fallback(request) if tenant.nil?

  switch_to_tenant(tenant)
rescue StandardError => e
  handle_tenant_resolution_error(e)
end

#switch_to_tenant(tenant) ⇒ Object



27
28
29
30
# File 'lib/pg_multitenant_schemas/rails/controller_concern.rb', line 27

def switch_to_tenant(tenant)
  @current_tenant = tenant
  PgMultitenantSchemas::Context.switch_to_tenant(tenant)
end