`
jiajie0531
  • 浏览: 29536 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Active Record Validations 3 Common Validation Options 通常的校验选项

阅读更多

version: Rails 4.1

3 Common Validation Options 通常的校验选项

下面是一些通常的校验选项:

 

3.1 :allow_nil 

当值被检查到是 nil 的时候,:allow_nil 选项跳过校验。

classCoffee < ActiveRecord::Base

  validates :size, inclusion: { in: %w(small medium large),

    message: "%{value} is not a valid size"}, allow_nil: true

end

 

3.2 :allow_blank

:allow_blank 选项和 :allow_nil 选项很类似。如果属性的值是 blank? 那么这个选项将会让校验通过, 例如类似于 nil 或者一个空的字符串。

 

classTopic < ActiveRecord::Base

  validates :title, length: { is: 5}, allow_blank: true

end

 

Topic.create(title: "").valid?  # => true

Topic.create(title: nil).valid? # => true

3.3 :message

正如你所看到的,:message 选项让你声明一个消息,当校验失败的时候,将会被增加到错误信息的集合中。当这个选项没有被使用时,Active Record 将会使用各自的默认错误信息对于每一个校验的helper。

 

3.4 :on

:on 选项让你声明校验该何时发生。对于所有内建的校验helper默认行为都是为save而运行的(当你创建一个新的数据记录行和当你更新它时)。如果你想要改变它,当一条新的数据记录行被创建时,你可以只使用 on: :create 来运行校验。当一个数据记录行被更新时,只要使用 on: :update 来运行校验即可。

 

classPerson < ActiveRecord::Base

  # it will be possible to update email with a duplicated value

  validates :email, uniqueness: true, on: :create

 

  # it will be possible to create the record with a non-numerical age

  validates :age, numericality: true, on: :update

 

  # the default (validates on both create and update)

  validates :name, presence: true

end

 

 

 

original url: http://guides.rubyonrails.org/active_record_validations.html#common-validation-options

0
0
分享到:
评论

相关推荐

    meteor-validations:流星变量验证的基础

    验证方式流星变量验证的基础安装meteor add zhaoyao... * @param {array} params - a validation can have params if it needs * @param {array} validations - a validation can have sub validations if it needs */

    validations-common-1.1.1-0.1.el7.noarch.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    struts验证框架-validation的验证框架

    - **Validation**:标记一个类需要被校验,通常配合Struts的配置文件使用。 ### 验证器类型详解 1. **ConversionErrorFieldValidator**:用于检测字段转换时是否出现错误,例如将字符串转换为日期时的异常情况。 2...

    Struts 2 数据校验功能及校验问题的解决方案

    为了处理更复杂的数据校验场景,Struts 2支持使用Validator插件,它可以读取XML配置文件或者使用JSR 303/JSR 349(Bean Validation)标准来进行校验。通过Validator插件,可以定义全局的校验规则,复用性强,同时也...

    spring注解-validation所用到的jar包

    因此,为了在Spring中使用Validation功能,我们通常需要引入以下jar包: 1. `hibernate-validator.jar`:这是Hibernate Validator的核心库,包含了验证注解和对应的实现。 2. `javax.validation-api.jar`:这是JSR ...

    ember-validations:Ember Validation的一个分支,修复了非Ember-CLI安装中不支持的某些问题

    Zipscene灰烬验证 Ember Validation的一个分支,它修复了非Ember-CLI安装中不支持的某些问题。 这些更改似乎是在Ember CLI版本中实现的,因此,只要有必要,就可以将其删除。

    jsp字段校验与非字段校验

    **JSP字段校验与非字段校验** 在Web开发中,数据验证是必不可少的一环,它可以确保用户输入的数据符合应用程序的要求,防止错误的数据进入系统。JSP(JavaServer Pages)作为Java EE平台上的动态网页技术,提供了...

    Android代码-java-validation

    Java Validation A lib to make validations on java objects How add it Add the repository to your build.gradle with: repositories { maven { url "https://jitpack.io" } } and on your project ...

    struts2 校验框架

    - 校验规则通常存储在`.validate.xml`文件中,该文件包含了一系列的字段校验规则,如`required`(是否必须填写),`maxLength`(最大长度),`minLength`(最小长度)等。 3. **注解方式**: - 除了XML配置,...

    Python库 | validations-libs-1.0.4.tar.gz

    标题中的"Python库 | validations-libs-1.0.4.tar.gz"表明这是一个与Python相关的库,名为"validations-libs",版本号为1.0.4,且已打包成tar.gz格式的压缩文件。在Python编程中,库(Library)是预先编写好的代码...

    ASP.NET MVC Validation Library

    The library uses the Validation Application Block (VAB) included in the MS Enterprise Library 4.1 to perform server-side validations for entities annotated with validation attributes. On the client-...

    一个简单的struts校验例子

    3. 校验过程:当用户提交表单时,Struts框架会自动调用ActionForm的validate()方法。这个方法会根据`validation.xml`中的规则进行校验,如果发现错误,将添加到ActionForm的fieldErrors集合中。 4. 错误处理:如果...

    ember-i18n-cp-validations:ember-i18n支持ember-cp-validations

    在ember-i18n-cp-validations中在2.x和3.x之间进行重大更改 如果您的应用程序实现了它自己的app/validators/messages.js ,则需要将导入引用从: ember-cp-validations/validators/messages更改为ember-i18n-cp-...

    Python库 | cuenca_validations-0.6.7.dev4-py3-none-any.whl

    在`cuenca_validations-0.6.7.dev4-py3-none-any.whl`这个压缩包中,包含的是该库的一个特定版本——0.6.7.dev4,适用于Python 3环境,且不依赖于特定的硬件架构或操作系统。`.whl`文件是一种预编译的Python分发包...

    swagger-restify-validation:与 node-restify-validations 集成的 swagger-tools 的中间件扩展

    与 node-restify-validations 集成的 swagger-tools 的中间件扩展 安装 npm install swagger-restify-validation --save 用法 需要 swagger-restify 验证, var restifyValidation = require('swagger-restify-...

    Python库 | db_validations-0.1.1.tar.gz

    《Python数据库验证库db_validations详解》 在Python编程领域,数据库操作是后端开发中的重要环节,确保数据的有效性和一致性至关重要。db_validations库,正如其名,专注于提供数据库验证功能,帮助开发者构建更加...

    Python库 | cuenca_validations-0.9.8.dev1.tar.gz

    `cuenca_validations`通常与`cuenca`库一起使用,后者提供了与Cuenca API交互的功能。通过先使用`cuenca_validations`验证数据,然后使用`cuenca`库发送请求,可以确保请求的成功率。 ### 总结 `cuenca_...

    PyPI 官网下载 | cuenca_validations-0.9.10.dev4.tar.gz

    要在Python项目中使用cuenca_validations库,开发者通常会使用pip工具,命令如下: ``` pip install cuenca_validations ``` 安装完成后,即可通过import语句导入库,并使用其中的功能。 5. 版本管理: ...

    ember-validations:Ember-Validations - 用于处理对象验证的 Ember.js 库

    是一个很棒的类似库Ember-validations 是一个 Ember.js 库,可以处理对象验证。 如果您必须检查对象属性的有效性,这个库会为您完成。 您只需要声明要验证的属性,以及要对该属性进行哪种验证。 这个库的灵感来自于...

    cp-validations:ember-intl对ember-cp-validations的支持

    @ ember-intl / cp-validations 在ember-cp-validations中增加了对支持 使用ember-i18n? 请参阅: 要求 &gt; = 2.0.0-rc.5 ember-cp-validations &gt; = 2 安装 ember install @ember-intl/cp-validations 配置中 在...

Global site tag (gtag.js) - Google Analytics