Ruby on Rails – validation一个成本
validation用户的成本/价格input的最佳方式是什么,validation规则如下:
- 允许的格式举例为.23,.2,1.23,0.25,5,6.3(小数点后最多两位数字)
- 最小值为0.01
- 最大值为9.99
检查价格并validation格式
#rails 3 validates :price, :format => { :with => /\A\d+(?:\.\d{0,2})?\z/ }, :numericality => {:greater_than => 0, :less_than => 10} #rails 2 validates_numericality_of :price, :greater_than => 0, :less_than => 10 validates_format_of :price, :with => /\A\d+(?:\.\d{0,2})?\z/
对于客户端validation,您可以使用像这样的jQuery插件,允许您为给定的input定义不同的有效格式。
对于服务器端的validation,根据这个问题/答案也许你应该使用一个decimal
列的price
,其中你可以定义的precision
和scale
价值观, scale
解决小数点后的两位数限制。
然后validation数字性,最小值和最大值,您可以使用下一个validation方法:
validates_numericality_of :price, :greater_than => 0, :less_than => 10
您可以构build自定义validation。例如,可以说第二种情况:
validate :price_has_to_be_greater_than_minimum def price_has_to_be_greater_than_minimum errors.add(:price, "price has to be greater than 0.01") if !price.blank? and price > 0.01 end
更多关于这个,在Rails指南中, 在这里 。