method
with_role_and_shard
v6.1.7.7 -
Show latest stable
- Class:
ActiveRecord::ConnectionHandling
with_role_and_shard(role, shard, prevent_writes)private
No documentation available.
# File activerecord/lib/active_record/connection_handling.rb, line 376
def with_role_and_shard(role, shard, prevent_writes)
prevent_writes = true if role == reading_role
if ActiveRecord::Base.legacy_connection_handling
with_handler(role.to_sym) do
connection_handler.while_preventing_writes(prevent_writes) do
self.connected_to_stack << { shard: shard, klasses: [self] }
yield
end
end
else
self.connected_to_stack << { role: role, shard: shard, prevent_writes: prevent_writes, klasses: [self] }
return_value = yield
return_value.load if return_value.is_a? ActiveRecord::Relation
return_value
end
ensure
self.connected_to_stack.pop
end