diff options
author | Edo Balvers <i@edo.me> | 2013-08-09 12:58:46 +0200 |
---|---|---|
committer | Edo Balvers <i@edo.me> | 2013-10-08 16:41:53 +0200 |
commit | 7cab255a97fceb48e3b59b3d39b5fe58c6dad54b (patch) | |
tree | 80f9f2389016da0f9e10f036ae78b4883ea2f462 /activerecord | |
parent | d2d6e4a980800cefce4066724ddd541ae22730c1 (diff) | |
download | rails-7cab255a97fceb48e3b59b3d39b5fe58c6dad54b.tar.gz rails-7cab255a97fceb48e3b59b3d39b5fe58c6dad54b.tar.bz2 rails-7cab255a97fceb48e3b59b3d39b5fe58c6dad54b.zip |
Fixes #11773 when using includes combined with select, the select statement was overwritten.
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/CHANGELOG.md | 6 | ||||
-rw-r--r-- | activerecord/lib/active_record/relation/finder_methods.rb | 2 | ||||
-rw-r--r-- | activerecord/test/cases/relations_test.rb | 8 |
3 files changed, 15 insertions, 1 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md index 83c94caa53..c3c4ae7862 100644 --- a/activerecord/CHANGELOG.md +++ b/activerecord/CHANGELOG.md @@ -199,6 +199,12 @@ *Yves Senn* +* Fixes bug when using includes combined with select, the select statement was overwritten. + + Fixes #11773 + + *Edo Balvers* + * Load fixtures from linked folders. *Kassio Borges* diff --git a/activerecord/lib/active_record/relation/finder_methods.rb b/activerecord/lib/active_record/relation/finder_methods.rb index 0132a02f83..fb8f44b188 100644 --- a/activerecord/lib/active_record/relation/finder_methods.rb +++ b/activerecord/lib/active_record/relation/finder_methods.rb @@ -261,7 +261,7 @@ module ActiveRecord end def construct_relation_for_association_find(join_dependency) - relation = except(:select).select(join_dependency.columns) + relation = except(:select).select(join_dependency.columns + select_values) apply_join_dependency(relation, join_dependency) end diff --git a/activerecord/test/cases/relations_test.rb b/activerecord/test/cases/relations_test.rb index f814947ab2..396d4ef1e9 100644 --- a/activerecord/test/cases/relations_test.rb +++ b/activerecord/test/cases/relations_test.rb @@ -486,6 +486,14 @@ class RelationTest < ActiveRecord::TestCase assert_equal Developer.where(name: 'David').map(&:id).sort, developers end + def test_includes_with_select + query = Post.select('comments_count AS ranking').order('ranking').includes(:comments) + .where(comments: { id: 1 }) + + assert_equal ['comments_count AS ranking'], query.select_values + assert_equal 1, query.to_a.size + end + def test_loading_with_one_association posts = Post.preload(:comments) post = posts.find { |p| p.id == 1 } |