活动通中注册信息的验证都是自己写代码验证的,重构改为用rails自带的验证机制验证的,即用validates验证。
User模型中对存在性的验证是使用 validates 方法,传入 presence: true 参数,如下:
还可以加上长度验证:
也可以格式验证,比如对Email的验证:
其中将正则表达式定义为常量 VALID_EMAIL_REGEX,Ruby 中的常量都是以大写字母开头的。/\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i 完整的正则表达式
/ 正则表达式开始
\A 匹配字符串的开头
[\w+\-.]+ 一个或多个字母、加号、连字符、或点号
@ 匹配 @ 符号
[a-z\d\-.]+ 一个或多个小写字母、数字、连字符或点号
\. 匹配点号
[a-z]+ 一个或多个小写字母
\z 匹配字符串结尾
/ 结束正则表达式
i 不区分大小写
唯一性验证:
验证 Email 地址的唯一性,不区分大小写:
User模型中对存在性的验证是使用 validates 方法,传入 presence: true 参数,如下:
class User < ActiveRecord::Base validates :name, presence: true或者 validates(:name, presence: true) end
还可以加上长度验证:
validates :name, presence: true, length: { maximum: 50 }
也可以格式验证,比如对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 中的常量都是以大写字母开头的。
\A 匹配字符串的开头
[\w+\-.]+ 一个或多个字母、加号、连字符、或点号
@ 匹配 @ 符号
[a-z\d\-.]+ 一个或多个小写字母、数字、连字符或点号
\. 匹配点号
[a-z]+ 一个或多个小写字母
\z 匹配字符串结尾
/ 结束正则表达式
i 不区分大小写
唯一性验证:
validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }, uniqueness: true
验证 Email 地址的唯一性,不区分大小写:
validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }, uniqueness: { case_sensitive: false }
发表评论
-
rails download files by post request
2016-07-04 14:34 413刚做了一个下载文件,用的是get请求 1.先说用get请 ... -
ruby中类的层级关系
2014-09-03 23:02 644所有的类最终继承于Object,Object本身又继承于 ... -
ruby中的对象包含什么
2014-09-02 22:21 493class MyClass def my_metho ... -
activerecord 中查询created_at在一定时间段内
2014-08-20 22:07 766今天遇到一个问题,需要取出数据库中本月的一些记录。 查了 ... -
guanzhuweobo
2014-01-17 17:10 0为了得到一个由所有被关注用户组成的 followed_user ... -
weibiweibi
2014-01-16 15:31 810.1.3 用户和微博之间的关联 在为 Web 程序构建数 ... -
管理员权限
2014-01-16 14:16 0我们要通过 User 模型中一个名为 admin 的属性来判断 ... -
利用faker创建示例用户
2014-01-16 13:51 0之前做过一个ruby_on_rails的教程,其中实现用户管理 ... -
转向用户真正相撞向的页面
2014-01-16 11:15 0要转向用户真正想访问的页面,我们要在某个地方存储这个页面的地址 ... -
添加头像
2014-01-15 15:01 0首先,我们要在用户资料页面中添加一个“全球通用识别”的头像,这 ... -
唯一性验证
2014-01-15 12:55 0为 email 列建立索引就要改变数据库模型,在 Rails ... -
用image_tag添加图片
2014-01-14 17:25 0在rails工程中添加图片: = link_to image_ ... -
ruby 中的处理数组函数与Hash
2014-01-15 09:37 673>> "foo bar baz ... -
定义 full_title 帮助方法
2013-12-31 10:08 0module ApplicationHelper # ... -
对数据操作的一些函数
2013-12-30 15:17 0Model.take检索的记录,没 ... -
用has_secure_password对密码进行加密
2013-12-28 19:19 2257运行环境: rails 4.0.0 rub ... -
rails的三种生产环境
2013-12-28 18:29 965Rails 定义了三个环境,分别是“生产环境”、“开发环境”和 ... -
rails中路由的配置
2013-12-24 18:18 01.典型路由: match '/:controller' m ... -
render与redirect_to页面显示
2013-12-28 18:21 4771.redirect_to要向服务器重新发送请求,示例代码如下 ... -
rails中用link_to用法
2013-12-22 16:17 2519rails中的link_to就相当于h ...
相关推荐
这是通过向基本验证模块添加validates_existence_of器来实现的。 它还支持:allow_nil => true/false 、 :allow_new => true/false和:polymorphic => true关联。 0.4.0 版还添加了 Rails 3 支持(自动使用适当的...
`validates_timeliness` 是一个针对 Ruby on Rails(以及支持 ActiveModel 的其他 ORM)的插件,用于增强模型中日期和时间的验证功能。这个插件使得开发者能够更精细地控制日期和时间字段的验证规则,确保数据的准确...
knock, 用于 Rails API的无缝JWT身份验证 敲门 用于 Rails API的无缝JWT身份验证描述敲门是 Rails api的认证解决方案,基于JSON网络令牌的应用程序。什么是JSON网络令牌? :为什么要使用这里选项?它是轻量级的。它...
Rails是一个流行的Ruby编程语言的Web应用框架,以其MVC(模型-视图-控制器)架构模式和DRY(Don't Repeat Yourself)原则而闻名。在Rails应用中,用户认证和授权是常见的需求,用于保护应用资源的安全。...
Ruby是一种面向对象的编程语言,尤其在Web开发领域中,Ruby on Rails(简称Rails)框架因其高效、简洁和灵活性而受到广泛欢迎。Rails是构建Web应用程序的利器,它提供了许多内置的功能来简化开发过程,包括身份验证...
validates_typeRails类型验证目的大多数Rails应用程序将具有由其ORM连接适配器强制的类型(例如pg gem或mysql2 )。 但是,这仅对具有定义良好的架构的应用程序有用。 如果您的应用程序具有无法再修改的旧式存储层或...
验证及时性 描述 完全验证Rails 4.x和Rails 5.0的日期,时间和日期时间。 这是的叉子,带有和补丁。 我添加了与各种Rails 4.x版本以及STI和性能修复程序的其他兼容性。 特征 将日期,时间和日期时间的验证添加到...
文件会介绍 `rails console`、`binding.pry`、`puts` 输出和 `debugger` 语句的使用,以及如何利用 Rails 的日志系统和测试套件进行调试。 6. **Asset Pipeline**: Rails 的 Asset Pipeline 提供了一种管理应用程序...
标题中的“Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码”表明这是一个关于使用Ruby on Rails框架进行敏捷Web开发的示例项目,名为Depot。Ruby on Rails(简称Rails)是一个开源的Web应用程序框架,它...
jquery-validation-rails, 对 Rails 资产管道的jQuery验证 :: 验证:: rails针对 Rails 资产管道的验证 。安装这里 gem将以下行添加到项目的Gemfile 中:gem 'jquery-validation-rails'在你的终端中运行以下命令:cd...
在“Rails进行敏捷Web开发(所有版本的源码rails3.0-4.0)”中,包含了Rails从3.0到4.0各个主要版本的源代码,这些版本的变迁反映了Rails框架在不同阶段的发展和改进。 1. Rails 3.0: Rails 3是重大升级,引入了...
- 测试安装: 创建一个简单的Rails应用来验证是否成功安装。 #### 五、练习作业0-Hello World - **目标**: - 学习如何创建第一个Rails应用程序。 - **过程**: - 创建新项目。 - 设置数据库配置。 - 创建控制器...
Rails使用ActiveRecord作为ORM,它使得Ruby类可以直接与数据库表进行交互。在这个项目中,`User`和`Image`模型可能会与数据库中的相应表关联,通过定义属性和关系,如`has_many :images`表示一个用户可以拥有多个...
- **定义**:验证是在保存数据之前对模型进行检查的过程,确保数据符合预期的格式和约束条件。 - **类型**:Rails提供了多种内置的验证类型,如`presence`、`uniqueness`、`format`等。 #### 三、关联 - **定义**...
在本文中,我们将深入探讨如何使用Rails、Vue.js、GraphQL和Devise来构建一个具有令牌身份验证的Web应用。Rails是Ruby on Rails框架,用于后端开发,Vue.js是一种轻量级的前端JavaScript框架,而GraphQL是一种强大的...
这些支持文件增强了Cucumber-Rails的灵活性和可定制性。 结合Rails 3.1的Asset Pipeline和Cucumber-Rails 1.2.0,开发者能够构建出一个既高效又健壮的Web应用程序。Asset Pipeline优化了前端资源的处理,Cucumber-...
同时,表单是Web应用中不可或缺的部分,Rails提供了丰富的API来处理表单的创建和验证。此外,布局(Layouts)允许开发者在多个页面中重用公共的HTML代码,如头部和尾部,从而提高开发效率。 #### 7. Ajax and Web ...
敲击Rails API的无缝JWT身份验证描述Knock是基于JSON Web令牌的仅用于Rails API的应用程序的身份验证解决方案。 我为什么要用这个? 它很轻巧。 它敲响了Rails API的Seamless JWT身份验证描述Knock是基于JSON Web...
Ruby on Rails(简称Rails)是一款基于Ruby编程语言的开源Web应用程序框架,它遵循“Don't Repeat Yourself”(DRY)原则和“Convention over Configuration”(约定优于配置)理念,极大地提高了Web开发的效率和...