#new without any parameters

This commit is contained in:
Dylan Knutson
2025-07-18 17:41:23 +00:00
parent 5f502b4f6f
commit 5cdede91ec
2 changed files with 19 additions and 4 deletions

View File

@@ -253,11 +253,16 @@ module HasAuxTable
sig { params(config: AuxTableConfig).void }
def setup_initialize_hook!(config)
initialize_method = self.instance_method(:initialize)
self.define_method(:initialize) do |args, **kwargs, &block|
self.define_method(:initialize) do |*args, **kwargs, &block|
T.bind(self, ActiveRecord::Base)
main_args, aux_args = config.aux.partition_by_columns(args)
initialize_method.bind(self).call(main_args, **kwargs, &block)
config.aux_model_for(self).assign_attributes(aux_args)
if args && args.size == 1 && (arg = args.first).is_a?(Hash)
main_args, aux_args = config.aux.partition_by_columns(args.first)
initialize_method.bind(self).call(main_args, **kwargs, &block)
config.aux_model_for(self).assign_attributes(aux_args)
else
initialize_method.bind(self).call(*args, **kwargs, &block)
config.aux_model_for(self)
end
end
end