Module: ActiveRecord::ConnectionHandling
- Defined in:
- lib/apartment/active_record/connection_handling.rb
Overview
This is monkeypatching Active Record to ensure that whenever a new connection is established it switches to the same tenant as before the connection switching. This problem is more evident when using read replica in Rails 6
Instance Method Summary collapse
- #connected_to_with_tenant(role: nil, shard: nil, prevent_writes: false, &blk) ⇒ Object (also: #connected_to)
Instance Method Details
#connected_to_with_tenant(role: nil, shard: nil, prevent_writes: false, &blk) ⇒ Object Also known as: connected_to
9 10 11 12 13 14 15 16 |
# File 'lib/apartment/active_record/connection_handling.rb', line 9 def connected_to_with_tenant(role: nil, prevent_writes: false, &blk) current_tenant = Apartment::Tenant.current connected_to_without_tenant(role: role, prevent_writes: prevent_writes) do Apartment::Tenant.switch!(current_tenant) yield(blk) end end |