lib/mongoid/criterion/selector.rb in mongoid-2.0.2 vs lib/mongoid/criterion/selector.rb in mongoid-2.1.0

- old
+ new

@@ -98,11 +98,11 @@ # # @return [ Object ] The cast value. # # @since 1.0.0 def typecast_value_for(field, value) - return field.set(value) if field.type === value + return field.serialize(value) if field.type === value case value when Hash value = value.dup value.each_pair do |k, v| value[k] = typecast_hash_value(field, k, v) @@ -110,11 +110,15 @@ when Array value.map { |v| typecast_value_for(field, v) } when Regexp value else - field.type == Array ? value.class.set(value) : field.set(value) + if field.type == Array + Serialization.mongoize(value, value.class) + else + field.serialize(value) + end end end # Typecast the value for booleans and integers in hashes. # @@ -129,12 +133,12 @@ # # @since 1.0.0 def typecast_hash_value(field, key, value) case key when "$exists" - Boolean.set(value) + Serialization.mongoize(value, Boolean) when "$size" - Integer.set(value) + Serialization.mongoize(value, Integer) else typecast_value_for(field, value) end end end