aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--activerecord/lib/active_record/relation/query_methods.rb2
-rw-r--r--activerecord/lib/active_record/relation/where_clause_factory.rb2
2 files changed, 3 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb
index 55fd0e0b52..0dcecbd42d 100644
--- a/activerecord/lib/active_record/relation/query_methods.rb
+++ b/activerecord/lib/active_record/relation/query_methods.rb
@@ -552,6 +552,8 @@ module ActiveRecord
WhereChain.new(spawn)
elsif opts.blank?
self
+ elsif !opts.is_a?(String) && !opts.respond_to?(:to_h)
+ raise ArgumentError, "Unsupported argument type: #{opts} (#{opts.class})"
else
spawn.where!(opts, *rest)
end
diff --git a/activerecord/lib/active_record/relation/where_clause_factory.rb b/activerecord/lib/active_record/relation/where_clause_factory.rb
index 9662756c2e..83ac074f97 100644
--- a/activerecord/lib/active_record/relation/where_clause_factory.rb
+++ b/activerecord/lib/active_record/relation/where_clause_factory.rb
@@ -21,7 +21,7 @@ module ActiveRecord
parts = predicate_builder.build_from_hash(attributes)
else
- raise ArgumentError, "Unsupported argument type: #{opts} (#{opts.class})"
+ parts = [opts]
end
WhereClause.new(parts, binds)