rails内置了很多验证,在提交表单时,可以直接使用rails提供的验证。rails中关于程度和数据库的连接环节是在model里的,在model里使用validates_xxxx_of可以完成常用的验证。常用的有:
<1> validates_presence_of 用于验证非空(输入空格也算空);
<2> validates_numericality_of 用于验证数字
<3> validates_uniqueness_of 用于验证唯一
<4> validates_length_of 用于验证字节长度
<5> validates_format_of 用于验证指定格式
另外还可以定义 validate方法,它会在模型类在保存实例之前会自动调用这个方法。
需要说明的是,这些验证都是服务器端验证,不是前端通过js的验证。如果验证不通过,会自动生成一串错误提示信息,包含在form最前端。
如:
=============================================
class Product < ActiveRecord::Base
validates_presence_of :title, :description, :image_url
validates_numericality_of :price
validates_uniqueness_of :title
validates_format_of :image_url,
:with => %r{^http:.+\.(gif|jpg|png)$}i,
:message => "must be a URL for a GIF,JPG, or PNG image"
protected
def validate
errors.add(:price, "should be positive") unless price.nil? || price >= 0.01
end
end