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重命名字段名称

上一篇下一篇

猜你喜欢

热点阅读