`
wangsuting
  • 浏览: 29759 次
社区版块
存档分类
最新评论

rails中用validates进行合法性验证

阅读更多
活动通中注册信息的验证都是自己写代码验证的,重构改为用rails自带的验证机制验证的,即用validates验证。
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         完整的正则表达式
  •                /                                 正则表达式开始
                    \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 }
    分享到:
    评论

    相关推荐

      validates_existence:验证 Rails 模型belongs_to 关联是否存在

      这是通过向基本验证模块添加validates_existence_of器来实现的。 它还支持:allow_nil =&gt; true/false 、 :allow_new =&gt; true/false和:polymorphic =&gt; true关联。 0.4.0 版还添加了 Rails 3 支持(自动使用适当的...

      Ruby-validatestimelinessActiveModel和Rails的日期与时间验证插件

      `validates_timeliness` 是一个针对 Ruby on Rails(以及支持 ActiveModel 的其他 ORM)的插件,用于增强模型中日期和时间的验证功能。这个插件使得开发者能够更精细地控制日期和时间字段的验证规则,确保数据的准确...

      knock, 用于 Rails API的无缝JWT身份验证.zip

      knock, 用于 Rails API的无缝JWT身份验证 敲门 用于 Rails API的无缝JWT身份验证描述敲门是 Rails api的认证解决方案,基于JSON网络令牌的应用程序。什么是JSON网络令牌? :为什么要使用这里选项?它是轻量级的。它...

      关于Rails登录和验证插件http_authentication restful-authentication

      Rails是一个流行的Ruby编程语言的Web应用框架,以其MVC(模型-视图-控制器)架构模式和DRY(Don't Repeat Yourself)原则而闻名。在Rails应用中,用户认证和授权是常见的需求,用于保护应用资源的安全。...

      Ruby-Knock为RailsAPI实现无缝JWT身份验证

      Ruby是一种面向对象的编程语言,尤其在Web开发领域中,Ruby on Rails(简称Rails)框架因其高效、简洁和灵活性而受到广泛欢迎。Rails是构建Web应用程序的利器,它提供了许多内置的功能来简化开发过程,包括身份验证...

      validates_type:Rails的类型验证

      validates_typeRails类型验证目的大多数Rails应用程序将具有由其ORM连接适配器强制的类型(例如pg gem或mysql2 )。 但是,这仅对具有定义良好的架构的应用程序有用。 如果您的应用程序具有无法再修改的旧式存储层或...

      validates_timeliness:ActiveModel和Rails的日期和时间验证插件。 支持多个ORM,并允许自定义日期时间格式

      验证及时性 描述 完全验证Rails 4.x和Rails 5.0的日期,时间和日期时间。 这是的叉子,带有和补丁。 我添加了与各种Rails 4.x版本以及STI和性能修复程序的其他兼容性。 特征 将日期,时间和日期时间的验证添加到...

      rails向导打包

      文件会介绍 `rails console`、`binding.pry`、`puts` 输出和 `debugger` 语句的使用,以及如何利用 Rails 的日志系统和测试套件进行调试。 6. **Asset Pipeline**: Rails 的 Asset Pipeline 提供了一种管理应用程序...

      Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码。

      标题中的“Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码”表明这是一个关于使用Ruby on Rails框架进行敏捷Web开发的示例项目,名为Depot。Ruby on Rails(简称Rails)是一个开源的Web应用程序框架,它...

      jquery-validation-rails, 对 Rails 资产管道的jQuery验证.zip

      jquery-validation-rails, 对 Rails 资产管道的jQuery验证 :: 验证:: rails针对 Rails 资产管道的验证 。安装这里 gem将以下行添加到项目的Gemfile 中:gem 'jquery-validation-rails'在你的终端中运行以下命令:cd...

      Rails进行敏捷Web开发(所有版本的源码rails3.0-4.0)

      在“Rails进行敏捷Web开发(所有版本的源码rails3.0-4.0)”中,包含了Rails从3.0到4.0各个主要版本的源代码,这些版本的变迁反映了Rails框架在不同阶段的发展和改进。 1. Rails 3.0: Rails 3是重大升级,引入了...

      Rails 101 入门电子书

      - 测试安装: 创建一个简单的Rails应用来验证是否成功安装。 #### 五、练习作业0-Hello World - **目标**: - 学习如何创建第一个Rails应用程序。 - **过程**: - 创建新项目。 - 设置数据库配置。 - 创建控制器...

      Rails项目源代码

      Rails使用ActiveRecord作为ORM,它使得Ruby类可以直接与数据库表进行交互。在这个项目中,`User`和`Image`模型可能会与数据库中的相应表关联,通过定义属性和关系,如`has_many :images`表示一个用户可以拥有多个...

      Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

      - **定义**:验证是在保存数据之前对模型进行检查的过程,确保数据符合预期的格式和约束条件。 - **类型**:Rails提供了多种内置的验证类型,如`presence`、`uniqueness`、`format`等。 #### 三、关联 - **定义**...

      使用Rails、Vue、GraphQL和Devise进行令牌身份验证_Rub.zip

      在本文中,我们将深入探讨如何使用Rails、Vue.js、GraphQL和Devise来构建一个具有令牌身份验证的Web应用。Rails是Ruby on Rails框架,用于后端开发,Vue.js是一种轻量级的前端JavaScript框架,而GraphQL是一种强大的...

      关于rails 3.1 cucumber-rails 1.2.0

      这些支持文件增强了Cucumber-Rails的灵活性和可定制性。 结合Rails 3.1的Asset Pipeline和Cucumber-Rails 1.2.0,开发者能够构建出一个既高效又健壮的Web应用程序。Asset Pipeline优化了前端资源的处理,Cucumber-...

      rails2-sample

      同时,表单是Web应用中不可或缺的部分,Rails提供了丰富的API来处理表单的创建和验证。此外,布局(Layouts)允许开发者在多个页面中重用公共的HTML代码,如头部和尾部,从而提高开发效率。 #### 7. Ajax and Web ...

      Rails API的无缝JWT身份验证-Ruby开发

      敲击Rails API的无缝JWT身份验证描述Knock是基于JSON Web令牌的仅用于Rails API的应用程序的身份验证解决方案。 我为什么要用这个? 它很轻巧。 它敲响了Rails API的Seamless JWT身份验证描述Knock是基于JSON Web...

      应用Rails进行敏捷Web开发中文第三版

      Ruby on Rails(简称Rails)是一款基于Ruby编程语言的开源Web应用程序框架,它遵循“Don't Repeat Yourself”(DRY)原则和“Convention over Configuration”(约定优于配置)理念,极大地提高了Web开发的效率和...

    Global site tag (gtag.js) - Google Analytics