mirror of https://github.com/rails/rails
Avoid converting integer as a string into float
This commit is contained in:
parent
74689fda0c
commit
b0be7792ad
|
@ -1,3 +1,7 @@
|
|||
* Avoid converting integer as a string into float.
|
||||
|
||||
*namusyaka*
|
||||
|
||||
* Remove deprecated behavior that halts callbacks when the return is false.
|
||||
|
||||
*Rafael Mendonça França*
|
||||
|
|
|
@ -70,6 +70,7 @@ module ActiveModel
|
|||
end
|
||||
|
||||
def parse_raw_value_as_a_number(raw_value)
|
||||
return raw_value.to_i if is_integer?(raw_value)
|
||||
Kernel.Float(raw_value) if raw_value !~ /\A0[xX]/
|
||||
end
|
||||
|
||||
|
|
|
@ -260,6 +260,15 @@ class NumericalityValidationTest < ActiveModel::TestCase
|
|||
Person.clear_validators!
|
||||
end
|
||||
|
||||
def test_validates_numericality_with_exponent_number
|
||||
base = 10_000_000_000_000_000
|
||||
Topic.validates_numericality_of :approved, less_than_or_equal_to: base
|
||||
topic = Topic.new
|
||||
topic.approved = (base + 1).to_s
|
||||
|
||||
assert topic.invalid?
|
||||
end
|
||||
|
||||
def test_validates_numericality_with_invalid_args
|
||||
assert_raise(ArgumentError) { Topic.validates_numericality_of :approved, greater_than_or_equal_to: "foo" }
|
||||
assert_raise(ArgumentError) { Topic.validates_numericality_of :approved, less_than_or_equal_to: "foo" }
|
||||
|
|
Loading…
Reference in New Issue