class ActiveRecord::Sharding::AbstractRepository
Private Instance Methods
generate_class_name(connection_name)
click to toggle source
# File lib/active_record/sharding/abstract_repository.rb, line 24 def generate_class_name(connection_name) # rubocop:disable Lint/UnusedMethodArgument raise NotImplementedError, "#{self.class.name}.#{__method__} is an abstract method." end
generate_model_for_shard(connection_name)
click to toggle source
# File lib/active_record/sharding/abstract_repository.rb, line 6 def generate_model_for_shard(connection_name) base_class_name = @base_class.name class_name = generate_class_name connection_name model = Class.new(base_class) do self.table_name = base_class.table_name module_eval <<-RUBY, __FILE__, __LINE__ + 1 def self.name "#{base_class_name}::#{class_name}" end RUBY end model.class_eval { establish_connection(connection_name) } model end