今天重构活动通时代码时学习了一下Ruby on Rails中的validates验证机制,validates验证机制是rails自带的,虽然存在局限性,但用起来还是比我们自己写验证要简单许多,下面就简单学习一下吧
(1)用validates对User模型的name属性进行存在性验证:
打开app/models/user.rb,添加如下代码
class User < ActiveRecord::Base
validates :name, presence: true
end
validates 只不过是一个方法,也可写成
class User < ActiveRecord::Base
validates(:name, presence: true)
end
(2)对name属性进行长度验证:
class User < ActiveRecord::Base
validates :name, presence: true, length: { maximum: 50 }
end
(3)对User模型的email属性进行格式性验证:
使用正则表达式验证 Email 格式
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }
我们把这个正则表达式定义为常量 VALID_EMAIL_REGEX,Ruby 中的常量都是以大写字母开头的。
使用上面的代码可以确保只有匹配这个正则表达式的 Email 地址才是合法的。(因为 VALID_EMAIL_REGEX 以大写字母开头,是个常量,所以其值是不能改变的。)
(4)验证 Email 地址的唯一性:
validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }, uniqueness: true
validates :email, presence: true,
format: { with: VALID_EMAIL_REGEX },
uniqueness: { case_sensitive: false }
直接把 true 换成了 case_sensitive: false,Rails 会自动指定 :uniqueness 的值为 true
分享到:
相关推荐
### Ruby on Rails 指南 v5.0.1 中文版 #### Rails入门 - **前提条件**:为了能够顺利地开始Rails的学习之旅,读者需要具备一定的Ruby语言基础,并且对Web开发有一定的了解。 - **Rails是什么?**:Rails是一种...
- **数据验证**:Rails 提供了强大的数据验证机制,可以在模型中定义验证规则,如:`validates :title, presence: true` 表示必须填写标题。 - **控制器**:控制器是 MVC 模式中的核心组件之一,用于处理用户的请求...
《Pro ActiveRecord:Databases with Ruby and Rails》这本书深入探讨了如何使用ActiveRecord这一对象关系映射(Object Relational Mapping, ORM)工具来管理和操作数据库,特别是在Ruby on Rails框架中的应用。...
`validates_timeliness` 是一个针对 Ruby on Rails(以及支持 ActiveModel 的其他 ORM)的插件,用于增强模型中日期和时间的验证功能。这个插件使得开发者能够更精细地控制日期和时间字段的验证规则,确保数据的准确...
通过本文的学习,我们可以了解到Ruby on Rails的一些基础知识点,包括各种字符串处理方法、正则表达式方法、时间处理方法、数组处理方法、验证方法以及枚举混合方法,同时也了解了Rails项目的默认目录结构。这些基础...
### Ruby on Rails中的ActiveRecord编程指南 #### 一、引言 在Ruby on Rails框架中,ActiveRecord是一种用于实现数据库抽象层的对象关系映射(ORM)工具。它为开发人员提供了一种简单而强大的方式来处理数据库记录...
Rails插件为ActiveRecord模型提供了validates_url_format_of方法。 网址由regexp验证。 已知与Ruby 1.8和1.9.2兼容。 已知与ActiveRecord 3.0.0.beta,2.3.5、2.2.2、2.1.2兼容。 用法 安装插件后,它的用法像 ...
Ruby是一种面向对象的编程语言,尤其在Web开发领域中,Ruby on Rails框架因其简洁和高效而备受推崇。在Rails中,数据验证是非常重要的一个环节,它确保了输入数据的质量和模型的完整性。以下是对给定文件中提到的...
下面我们将深入探讨如何在Ruby on Rails中使用ActiveRecord进行密码强度验证: 1. **自定义验证器:** 在ActiveRecord中,你可以创建一个自定义验证方法。例如,可以创建一个名为`validates_password_strength`的...
这个插件的目的是让你在编写Ruby on Rails应用时能够快速输入常见的代码结构,减少重复劳动,提升开发速度。 Ruby是一种面向对象的、动态类型的编程语言,以其简洁和强大的语法闻名。Rails是基于Ruby的Web开发框架...
Ruby on Rails(简称RoR)是一款基于Ruby语言的开源Web应用框架,以其高效、简洁和MVC(模型-视图-控制器)架构而受到开发者喜爱。然而,随着Web应用复杂性的增加,安全性问题也日益凸显。为了确保Ruby on Rails应用...
在Ruby on Rails(简称Rails)中,数据库管理是核心功能之一。Rails默认使用ActiveRecord,这是ORM(对象关系映射)的一部分,允许开发者用Ruby代码操作数据库,无需直接编写SQL语句。ActiveRecord将数据库表映射为...
使用Ruby on Rails中的Kickbox.io API验证电子邮件,如果Kickbox.io API由于任何原因失败,则退回到基本语法电子邮件验证 安装 将此行添加到您的应用程序的Gemfile中: gem 'kickbox_rails' 然后执行: $ bundle ...
在Ruby on Rails框架中,Paperclip是一个非常流行的用于处理文件上传的库。它提供了一种简单而优雅的方式来管理和处理模型中的附件,如图片、文档等。Paperclip与ActiveRecord紧密集成,使得在Rails应用中添加文件...
在Ruby on Rails(Rails)框架中,上传和转换视频是一个常见的需求,特别是在构建涉及多媒体内容的Web应用时。Rails提供了一系列工具和库,使得开发者能够方便地处理这种任务。本篇文章将详细介绍如何在Rails中实现...
MongoMapper的设计理念深受ActiveRecord的影响,它是Ruby on Rails框架中的核心组件,但MongoMapper并非局限于Rails,它可以独立使用于任何Ruby项目中。通过MongoMapper,你可以定义模型类,这些类与MongoDB的集合相...
在Ruby on Rails框架中,文件上传是一个常见的需求,例如用户头像、产品图片或文档的上传。本篇文章将深入探讨Rails中的文件上传机制,并结合给定的“rails 文件上传”主题,提供关于如何在Rails应用中实现文件上传...
Devise 是一个灵活的身份认证解决方案,它为 Ruby on Rails 应用程序提供了强大的用户管理和验证功能。在默认情况下,Devise 使用电子邮件作为用户的唯一标识符,但有些情况下,你可能需要添加 UID(用户唯一标识符...
在Ruby on Rails框架中,命令行工具是开发者日常工作中不可或缺的一部分。Rails命令允许我们快速地构建应用程序、管理数据库、生成代码以及执行各种自动化任务。以下是一些关键的Rails命令及其详细解释: 1. **创建...