Rails验证使用教程
2014-04-17 本文已影响0人
风暴英雄
验证值唯一性
class User < ActiveRecord::Base
validates_uniqueness_of :email
end
基于多个参数指定唯一值
class Schedule < ActiveRecord::Base
validates_uniqueness_of :teacher_id, :scope => [:semester_id, :class_id]
end
配置选项:
:message - 指定自定义错误信息
验证数据长度
class User < ActiveRecord::Base
validates_uniqueness_of :email
validates_length_of :email, :within => 5..50
end
可用选项
:minimum 指定最小长度
:maximum 指定最大长度
:is 指定特定的长度
:within 指定范围值,如上面的5..50
:allow_nil 长度允许为空
:too_long 指定超出最大长度的错误信息
:too_short 指定没有满足最小长度的错误信息
:wrong_length 没有满足长度要求的信息
:message 指定错误信息
通过正则验证数据
class User < ActiveRecord::Base
validates_uniqueness_of :email
validates_length_of :email, :within => 5..50
validates_format_of :email, :with => /^[^@][\w.-]+@[\w.-]+[.][a-z]{2,4}$/i
end
验证确认值
class User < ActiveRecord::Base
validates_uniqueness_of :email
validates_length_of :email, :within => 5..50
validates_format_of :email, :with => /^[^@][\w.-]+@[\w.-]+[.][a-z]{2,4}$/i
validates_confirmation_of :password
end
当我们添加validates_confirmation_of
之后,模型会自动添加一个password_confirmation
属性来匹配password
。
验证布尔值
validates_acceptance_of
模型回调函数
• before_create
• after_create
• before_save
• after_save
• before_destroy
• after_destroy
更新模型
rails generate migration rename_password_to_hashed_password
重命名字段名称