Rails验证使用教程

验证值唯一性
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重命名字段名称

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、心得体会1、今天完成了什么? Rails guide 4 170页 5个小时 重看了镐头书看了第一部分 1个小...
    柳辉阅读 367评论 0 1
  • 1、简介 Laravel 提供了多种方法来验证应用输入数据。默认情况下,Laravel 的控制器基类使用Valid...
    伊Summer阅读 1,557评论 0 3
  • 验证 简介 Laravel 对验证应用的输入数据提供了多中途径的实现。默认的,Laravel 的基础控制器类使用了...
    Dearmadman阅读 10,244评论 5 8
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,982评论 19 139
  • 22年12月更新:个人网站关停,如果仍旧对旧教程有兴趣参考 Github 的markdown内容[https://...
    tangyefei阅读 35,235评论 22 257