diff --git a/activerecord/lib/active_record/relation/predicate_builder.rb b/activerecord/lib/active_record/relation/predicate_builder.rb index 5cea2328e890bd090f2e222e4f4fe1ae05cfdc8f..0d1307d87eb8ea10a2509b11deb8f711369d9b4b 100644 --- a/activerecord/lib/active_record/relation/predicate_builder.rb +++ b/activerecord/lib/active_record/relation/predicate_builder.rb @@ -24,7 +24,9 @@ def build_from_hash(attributes, default_table) case value when Array, ActiveRecord::Associations::AssociationCollection, ActiveRecord::Relation - values = value.to_a + values = value.to_a.map { |x| + x.respond_to?(:quoted_id) ? x.quoted_id : x + } attribute.in(values) when Range, Arel::Relation attribute.in(value)