method
with_role_and_shard
v7.0.0 -
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 362
def with_role_and_shard(role, shard, prevent_writes)
prevent_writes = true if role == ActiveRecord.reading_role
if ActiveRecord.legacy_connection_handling
with_handler(role.to_sym) do
connection_handler.while_preventing_writes(prevent_writes) do
append_to_connected_to_stack(shard: shard, klasses: [self])
yield
end
end
else
append_to_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