Module: ActiveRecord::CountLoader::Builder::HasManyExtension

Defined in:
lib/active_record/count_loader/has_many_extension.rb

Instance Method Summary collapse

Instance Method Details

#build(model) ⇒ Object



9
10
11
12
# File 'lib/active_record/count_loader/has_many_extension.rb', line 9

def build(model)
  define_count_loader(model) if options[:count_loader]
  super
end

#define_count_loader(model) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/active_record/count_loader/has_many_extension.rb', line 14

def define_count_loader(model)
  name_with_count = :"#{name}_count"
  name_with_count = options[:count_loader] if options[:count_loader].is_a?(Symbol)

  valid_options = options.slice(*Associations::Builder::CountLoader.valid_options)
  reflection = Associations::Builder::CountLoader.build(model, name_with_count, nil, valid_options)
  Reflection.add_reflection(model, name_with_count, reflection)
end

#valid_optionsObject



5
6
7
# File 'lib/active_record/count_loader/has_many_extension.rb', line 5

def valid_options
  super + [:count_loader]
end