仅限小数属性的数字

时间:2013-12-05 15:36:49

标签: ruby-on-rails

class Information < ActiveRecord::Base

  validates :credit, numericality: { greater_than_or_equal_to: 0.0 }, :allow_blank => true

end

在视图中:

<%= f.text_field :credit, placeholder: 'Money...' %>

问题是,如果我输入“abc100”它会增加我的信用0.0并且它会返回一条成功的消息,但我想向用户显示他写的内容是错误的...我想在使用正则表达式信息模型,但属性类型是一个整数...所以它是什么?

3 个答案:

答案 0 :(得分:0)

使用HTML5 number输入类型,甚至还有一个Rails助手:

f.number_field :credit, placeholder: 'Money...'

number_fieldmin的{​​{1}}选项会被here描述。

答案 1 :(得分:0)

使用JQuery插件

jQuery Plugin – Numeric

答案 2 :(得分:0)

首先,您可以使用其中一种较新的HTML5输入类型,如herehere所述

由于这些是较新的HTML5功能,因此您绝对正确,它们可能无法在所有浏览器中使用(请参阅CanIUse Page on the subject)。所以我会使用客户端表单验证,例如描述in this RailsCast

最后,无论如何构建HTML /前端代码,您的模型应该能够适应可能不尊重它的浏览器和请求。使用数值模型验证:http://edgeguides.rubyonrails.org/active_record_validations.html#numericality