mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Merge pull request #28050 from namusyaka/avoid-converting-int-into-float
Avoid converting integer as a string into float
This commit is contained in:
commit
9426bd7a19
3 changed files with 15 additions and 0 deletions
|
@ -1 +1,6 @@
|
|||
* Avoid converting integer as a string into float.
|
||||
|
||||
*namusyaka*
|
||||
|
||||
|
||||
Please check [5-1-stable](https://github.com/rails/rails/blob/5-1-stable/activemodel/CHANGELOG.md) for previous changes.
|
||||
|
|
|
@ -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 a new issue