Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Validation for non-negative integers and decimal values

My fields are: tax rate and tax amount in which I want to validate positive values.

I wrote this validation:

:format => { :with => /\A[+]?\d+\Z/}

But it is not taking numbers with a decimal point like 4.67. And it's throwing me an error. What type of validation will work on integers and floating point values? for example: 2, 57, 54.56 should pass but -2.56, -87 should fail.

like image 323
Sneha Kachroo Avatar asked Aug 04 '12 06:08

Sneha Kachroo


2 Answers

Doesn't this work?

validates :your_field, :numericality => { :greater_than_or_equal_to => 0 } 

(guess for taxes following rule will be more correct:)

validates :your_field, :numericality => { :greater_than_or_equal_to => 0, :less_than_or_equal_to => 100 } 
like image 111
dimuch Avatar answered Sep 28 '22 07:09

dimuch


You could use:

validates :tax_rate, inclusion: { in: 0..5 }

It allows values like: 0, 2, 1.2, 3.2

Hope it helps!

like image 27
Oswaldo Ferreira Avatar answered Sep 28 '22 07:09

Oswaldo Ferreira