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
- #current_schema ⇒ Object
-
#current_tenant ⇒ Object
Instance methods.
- #resolve_tenant_context ⇒ Object
- #switch_to_tenant(tenant) ⇒ Object
Instance Method Details
#current_schema ⇒ Object
23 24 25 |
# File 'lib/pg_multitenant_schemas/rails/controller_concern.rb', line 23 def current_schema PgMultitenantSchemas::Context.current_schema end |
#current_tenant ⇒ Object
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_context ⇒ Object
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 = (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 |