From 16f6f2592e4e6c22f06d75eb8a6ec0cb68c9404b Mon Sep 17 00:00:00 2001 From: robertomiranda Date: Wed, 6 Feb 2013 09:10:02 -0500 Subject: Change behaviour with empty array in where clause --- .../lib/active_record/associations/has_many_through_association.rb | 2 +- activerecord/lib/active_record/relation/predicate_builder.rb | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'activerecord/lib') diff --git a/activerecord/lib/active_record/associations/has_many_through_association.rb b/activerecord/lib/active_record/associations/has_many_through_association.rb index d1458f30ba..2099effbeb 100644 --- a/activerecord/lib/active_record/associations/has_many_through_association.rb +++ b/activerecord/lib/active_record/associations/has_many_through_association.rb @@ -136,7 +136,7 @@ module ActiveRecord records = load_target if records == :all scope = through_association.scope - scope.where! construct_join_attributes(*records) + scope.where! construct_join_attributes(*records) unless records.empty? case method when :destroy diff --git a/activerecord/lib/active_record/relation/predicate_builder.rb b/activerecord/lib/active_record/relation/predicate_builder.rb index 24cbae83de..db2588e725 100644 --- a/activerecord/lib/active_record/relation/predicate_builder.rb +++ b/activerecord/lib/active_record/relation/predicate_builder.rb @@ -17,6 +17,8 @@ module ActiveRecord queries.concat expand(association && association.klass, table, k, v) end end + elsif value.is_a?(Array) && value.empty? + raise ArgumentError, "Condition value in SQL clause can't be an empty array" else column = column.to_s -- cgit v1.2.3