diff options
3 files changed, 4 insertions, 6 deletions
diff --git a/activerecord/lib/active_record/association_preload.rb b/activerecord/lib/active_record/association_preload.rb index 5ac89a93c2..4664f03ff3 100644 --- a/activerecord/lib/active_record/association_preload.rb +++ b/activerecord/lib/active_record/association_preload.rb @@ -215,7 +215,7 @@ module ActiveRecord source = reflection.source_reflection.name through_records.first.class.preload_associations(through_records, source) if through_reflection.macro == :belongs_to - rev_id_to_record_map, rev_ids = construct_id_map(records, through_primary_key) + rev_id_to_record_map = construct_id_map(records, through_primary_key).first rev_primary_key = through_reflection.klass.primary_key through_records.each do |through_record| add_preloaded_record_to_collection(rev_id_to_record_map[through_record[rev_primary_key].to_s], @@ -243,7 +243,6 @@ module ActiveRecord if options[:through] through_records = preload_through_records(records, reflection, options[:through]) - through_reflection = reflections[options[:through]] unless through_records.empty? source = reflection.source_reflection.name through_records.first.class.preload_associations(through_records, source, options) @@ -261,7 +260,6 @@ module ActiveRecord def preload_through_records(records, reflection, through_association) through_reflection = reflections[through_association] - through_primary_key = through_reflection.primary_key_name through_records = [] if reflection.options[:source_type] diff --git a/activerecord/test/cases/associations/belongs_to_associations_test.rb b/activerecord/test/cases/associations/belongs_to_associations_test.rb index 28234ebe49..742513230e 100644 --- a/activerecord/test/cases/associations/belongs_to_associations_test.rb +++ b/activerecord/test/cases/associations/belongs_to_associations_test.rb @@ -75,8 +75,8 @@ class BelongsToAssociationsTest < ActiveRecord::TestCase end def test_eager_loading_with_primary_key - apple = Firm.create("name" => "Apple") - citibank = Client.create("name" => "Citibank", :firm_name => "Apple") + Firm.create("name" => "Apple") + Client.create("name" => "Citibank", :firm_name => "Apple") citibank_result = Client.find(:first, :conditions => {:name => "Citibank"}, :include => :firm_with_primary_key) assert_not_nil citibank_result.instance_variable_get("@firm_with_primary_key") end diff --git a/activesupport/lib/active_support/multibyte/chars.rb b/activesupport/lib/active_support/multibyte/chars.rb index 019fb2df06..afbdd2c272 100644 --- a/activesupport/lib/active_support/multibyte/chars.rb +++ b/activesupport/lib/active_support/multibyte/chars.rb @@ -437,7 +437,7 @@ module ActiveSupport #:nodoc: begin @wrapped_string[0...byte_offset].unpack('U*').length - rescue ArgumentError => e + rescue ArgumentError byte_offset -= 1 retry end |