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/lib/active_record/core.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'activerecord/lib/active_record/core.rb') diff --git a/activerecord/lib/active_record/core.rb b/activerecord/lib/active_record/core.rb index 894d18b79e..7f66c83c06 100644 --- a/activerecord/lib/active_record/core.rb +++ b/activerecord/lib/active_record/core.rb @@ -177,7 +177,7 @@ module ActiveRecord hash = args.first return super if hash.values.any? { |v| - v.nil? || Array === v || Hash === v + v.nil? || Array === v || Hash === v || Relation === v } # We can't cache Post.find_by(author: david) ...yet -- cgit v1.2.3