From f798cbd2f36ed8a4b825667016d6975b812a5b9f Mon Sep 17 00:00:00 2001 From: akihiro17 Date: Tue, 21 Jul 2015 01:31:48 +0900 Subject: Don't cache arguments in #find_by if they are an ActiveRecord::Relation In this commit, find_by doesn't cache arguments so that find_by with association subquery works correctly. Fixes #20817 --- activerecord/test/cases/finder_test.rb | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'activerecord/test/cases') diff --git a/activerecord/test/cases/finder_test.rb b/activerecord/test/cases/finder_test.rb index 307b68764e..6686ce012d 100644 --- a/activerecord/test/cases/finder_test.rb +++ b/activerecord/test/cases/finder_test.rb @@ -265,6 +265,12 @@ class FinderTest < ActiveRecord::TestCase assert_equal [Account], accounts.collect(&:class).uniq end + def test_find_by_association_subquery + author = authors(:david) + assert_equal author.post, Post.find_by(author: Author.where(id: author)) + assert_equal author.post, Post.find_by(author_id: Author.where(id: author)) + end + def test_take assert_equal topics(:first), Topic.take end -- cgit v1.2.3