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并且它会返回一条成功的消息,但我想向用户显示他写的内容是错误的...我想在使用正则表达式信息模型,但属性类型是一个整数...所以它是什么?
答案 0 :(得分:0)
使用HTML5 number
输入类型,甚至还有一个Rails助手:
f.number_field :credit, placeholder: 'Money...'
number_field
和min
的{{1}}选项会被here描述。
答案 1 :(得分:0)
使用JQuery插件
答案 2 :(得分:0)
首先,您可以使用其中一种较新的HTML5输入类型,如here和here所述
由于这些是较新的HTML5功能,因此您绝对正确,它们可能无法在所有浏览器中使用(请参阅CanIUse Page on the subject)。所以我会使用客户端表单验证,例如描述in this RailsCast
最后,无论如何构建HTML /前端代码,您的模型应该能够适应可能不尊重它的浏览器和请求。使用数值模型验证:http://edgeguides.rubyonrails.org/active_record_validations.html#numericality