`
123fly
  • 浏览: 12029 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

rails验证

    博客分类:
  • ruby
阅读更多

1.presence

这个帮助方法检查指定的属性是否为非空值,调用 blank? 方法检查只是否为 nil 或空字符串,即空字符串或只包含空白的字符串。

代码

class Person < ActiveRecord::Base
  validates :name, :login, :email, presence: true
end

2.absence

这个方法验证指定的属性值是否为空,使用 present? 方法检测值是否为 nil 或空字符串,即空字符串或只包含空白的字符串。

代码

class Person < ActiveRecord::Base
  validates :name, :login, :email, absence: true
end

 3.uniqueness

这个帮助方法会在保存对象之前验证属性值是否是唯一的。该方法不会在数据库中创建唯一性约束,所以有可能两个数据库连接创建的记录字段的值是相同的。为了避免出现这种问题,要在数据库的字段上建立唯一性索引。

代码

class Account < ActiveRecord::Base
  validates :email, uniqueness: true
end

 这个验证会在模型对应的数据表中执行一个 SQL 查询,检查现有的记录中该字段是否已经出现过相同的值。

:scope 选项可以指定其他属性,用来约束唯一性验证:

class Holiday < ActiveRecord::Base
  validates :name, uniqueness: { scope: :year,
    message: "should happen once per year" }
end

 还有个 :case_sensitive 选项,指定唯一性验证是否要区分大小写,默认值为 true

class Person < ActiveRecord::Base
  validates :name, uniqueness: { case_sensitive: false }
end

 默认的错误消息是“has already been taken”。

分享到:
评论

相关推荐

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

    在Rails应用中实现用户登录和验证是构建任何Web服务的基础。本文将深入探讨Rails中的http_authentication和restful-authentication插件,这两种方法都常用于用户身份验证。 首先,让我们了解HTTP基本认证...

    kickbox_rails:Kickbox.io Rails验证器

    使用Ruby on Rails中的Kickbox.io API验证电子邮件,如果Kickbox.io API由于任何原因失败,则退回到基本语法电子邮件验证 安装 将此行添加到您的应用程序的Gemfile中: gem 'kickbox_rails' 然后执行: $ bundle ...

    validates_formatting_of:包装在gem中的Common Rails验证

    validates_formatting_of gem添加了几种便捷的方法来验证Rails应用程序中的内容,例如电子邮件,URL和电话号码。 支持的Ruby版本 1.9.3 2.0.0 2.1.0 2.2.0 安装 要安装validates_formatting_of ,请将以下内容...

    email_validator:Rails的电子邮件验证器

    EmailValidator Rails 3+的电子邮件验证器。 使用RFC-3696验证支持符合RFC-2822和RFC-5321的电子邮件验证。 以前位于: : 验证原理这个gem提供的默认验证( :loose配置选项)极其宽松。 它只是检查在@前后是否有空格...

    Rails 101 入门电子书

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

    Rails项目源代码

    在Rails中,可以使用Devise这样的gem来处理用户身份验证,提供注册、登录、密码重置等功能。用户模型通常会包含确认令牌、加密密码等相关字段。 4. **数据库和ActiveRecord**: Rails使用ActiveRecord作为ORM,它...

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

    在描述中提到的"Knock"是一个专门为Rails API设计的库,它帮助开发者实现JSON Web Token(JWT)的身份验证,这是一种安全的身份验证机制,适用于无状态API。 JWT是一种轻量级的认证协议,它允许服务器向客户端发送...

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    - **类型**:Rails提供了多种内置的验证类型,如`presence`、`uniqueness`、`format`等。 #### 三、关联 - **定义**:关联是指定义模型之间的关系,如一对一、一对多等。 - **示例**:例如,在博客系统中,一篇...

    rails2-sample

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

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

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

    rails敏捷开发的购物车系统

    这可以通过使用Rails的身份验证机制,如Devise或Authlogic,实现用户登录和会话管理。 最后,测试是任何Rails应用不可或缺的一部分。使用RSpec进行行为驱动开发(BDD)测试,Rake任务自动化测试执行,确保购物车...

    rails api(文档)

    8. **安全考虑**:Rails API通常需要与OAuth2、JWT(JSON Web Tokens)或其他身份验证机制配合,以确保API的安全性。 9. **Rate Limiting**:防止恶意用户或脚本滥用API,Rails API可以通过中间件(如Rack::Attack...

    rails本地安装包完整版

    Rails 2.1.0引入了许多新特性,例如活动记录(ActiveRecord)的自动保存关联、部分渲染以及自定义验证选项等。 7. **activerecord-2.1.0.gem**:ActiveRecord是Rails中的ORM(对象关系映射)库,负责将数据库表映射...

    rails 项目起步示例

    - **Authentication** 和 **Authorization**:身份验证和授权机制,确保用户安全。 - **Asset Pipeline**:处理和优化应用的静态资源,如JS、CSS的合并和压缩。 学习Rails项目起步,你需要熟悉这些核心概念,并...

    rails-practice-validations:一个 repo 设置,以便您可以练习验证

    在Ruby on Rails框架中,验证...这将有助于加深对Rails验证机制的理解,提高开发效率,同时保证应用程序的数据质量。通过不断的练习和实践,你将能够更加熟练地运用这些验证技巧,为实际项目提供更健壮的解决方案。

    railsAPI

    在Rails API中,模型(Model)代表应用程序的数据结构,它与数据库交互,处理数据验证和业务逻辑。视图(View)是用户看到和与之交互的部分,而控制器(Controller)作为模型和视图之间的协调者,处理用户请求并决定...

    Ruby on Rails入门例子

    1. **Model**:模型是应用程序中的数据层,它与数据库交互,负责业务逻辑和数据验证。在Rails中,我们通常使用ActiveRecord库来创建模型,通过继承`ApplicationRecord`类并定义属性和关系。 2. **View**:视图负责...

    Rails 101S

    - **深入实践CRUD功能**:详细讲解如何具体实现CRUD操作,包括数据验证、错误处理等高级特性。 - **MVC架构与RESTful概念**:介绍模型(Model)、视图(View)、控制器(Controller)三者之间的关系以及RESTful API的设计...

    Advanced Rails

    7. **Rails插件与Gem**:Rails社区提供了丰富的插件和Gem,如Devise用于身份验证,Paperclip或Carrierwave处理文件上传,Resque或Sidekiq实现后台任务队列。掌握如何选择和使用这些工具来扩展应用功能。 8. **Rails...

Global site tag (gtag.js) - Google Analytics