From 6050d0177c3b9dc11c3e3c3dfa17530e27d90996 Mon Sep 17 00:00:00 2001 From: Kelley Reynolds Date: Thu, 9 Feb 2012 13:51:40 -0500 Subject: Fix eagerly loading associations without primary keys --- .../active_record/associations/join_dependency/join_part.rb | 2 +- activerecord/test/cases/associations/eager_test.rb | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/activerecord/lib/active_record/associations/join_dependency/join_part.rb b/activerecord/lib/active_record/associations/join_dependency/join_part.rb index 2b1d888a9a..711f7b3ce1 100644 --- a/activerecord/lib/active_record/associations/join_dependency/join_part.rb +++ b/activerecord/lib/active_record/associations/join_dependency/join_part.rb @@ -54,7 +54,7 @@ module ActiveRecord unless @column_names_with_alias @column_names_with_alias = [] - ([primary_key] + (column_names - [primary_key])).each_with_index do |column_name, i| + ([primary_key] + (column_names - [primary_key])).compact.each_with_index do |column_name, i| @column_names_with_alias << [column_name, "#{aliased_prefix}_r#{i}"] end end diff --git a/activerecord/test/cases/associations/eager_test.rb b/activerecord/test/cases/associations/eager_test.rb index b79c69bbb5..35070ba506 100644 --- a/activerecord/test/cases/associations/eager_test.rb +++ b/activerecord/test/cases/associations/eager_test.rb @@ -39,6 +39,19 @@ class EagerAssociationTest < ActiveRecord::TestCase assert_nil member.favourite_club end + def test_loading_with_one_association_without_primary_key + Comment.primary_key = nil + begin + assert_nothing_raised do + Post.includes(:comments).references(:comments).all + end + rescue + raise $! + ensure + Comment.primary_key = 'id' + end + end + def test_loading_with_one_association posts = Post.find(:all, :include => :comments) post = posts.find { |p| p.id == 1 } -- cgit v1.2.3