Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Ticket #8117: execute_grouped_calculation_with_primary_key_name.diff

File execute_grouped_calculation_with_primary_key_name.diff, 0.9 kB (added by jack, 2 years ago)

Simpler patch that uses association.primary_key_name instead of ORing

  • activerecord/lib/active_record/calculations.rb

    old new  
    221221          group_attr      = options[:group].to_s 
    222222          association     = reflect_on_association(group_attr.to_sym) 
    223223          associated      = association && association.macro == :belongs_to # only count belongs_to associations 
    224           group_field     = (associated ? "#{options[:group]}_id" : options[:group]).to_s 
     224          group_field     = associated ? association.primary_key_name : group_attr 
    225225          group_alias     = column_alias_for(group_field) 
    226226          group_column    = column_for group_field 
    227227          sql             = construct_calculation_sql(operation, column_name, options.merge(:group_field => group_field, :group_alias => group_alias))