diff options
Diffstat (limited to 'activemodel/lib/active_model/validations')
| -rw-r--r-- | activemodel/lib/active_model/validations/numericality.rb | 15 | ||||
| -rw-r--r-- | activemodel/lib/active_model/validations/validates.rb | 2 | 
2 files changed, 12 insertions, 5 deletions
| diff --git a/activemodel/lib/active_model/validations/numericality.rb b/activemodel/lib/active_model/validations/numericality.rb index 3753040316..126a87ac6e 100644 --- a/activemodel/lib/active_model/validations/numericality.rb +++ b/activemodel/lib/active_model/validations/numericality.rb @@ -21,10 +21,17 @@ module ActiveModel        def validate_each(record, attr_name, value)          came_from_user = :"#{attr_name}_came_from_user?" -        if record.respond_to?(came_from_user) && record.public_send(came_from_user) -          raw_value = record.read_attribute_before_type_cast(attr_name) -        elsif record.respond_to?(:read_attribute) -          raw_value = record.read_attribute(attr_name) +        if record.respond_to?(came_from_user) +          if record.public_send(came_from_user) +            raw_value = record.read_attribute_before_type_cast(attr_name) +          elsif record.respond_to?(:read_attribute) +            raw_value = record.read_attribute(attr_name) +          end +        else +          before_type_cast = :"#{attr_name}_before_type_cast" +          if record.respond_to?(before_type_cast) +            raw_value = record.public_send(before_type_cast) +          end          end          raw_value ||= value diff --git a/activemodel/lib/active_model/validations/validates.rb b/activemodel/lib/active_model/validations/validates.rb index 88cca318ef..21c4ce0dfe 100644 --- a/activemodel/lib/active_model/validations/validates.rb +++ b/activemodel/lib/active_model/validations/validates.rb @@ -116,7 +116,7 @@ module ActiveModel            key = "#{key.to_s.camelize}Validator"            begin -            validator = key.include?("::".freeze) ? key.constantize : const_get(key) +            validator = key.include?("::") ? key.constantize : const_get(key)            rescue NameError              raise ArgumentError, "Unknown validator: '#{key}'"            end | 
