`

Validation Helpers(数据验证)

阅读更多

validates_acceptance_of

# checkbox 提交后的设置的默认值 

 

class Person < ActiveRecord::Base

  validates_acceptance_of :terms_of_service, :accept => 'yes'

end

 

validates_associated

# 关联验证

# 验证当前的model时,也要验证相关联的model

 

class Library < ActiveRecord::Base

  has_many :books

  validates_associated :books

end

 

# 不要对进行双向关联验证,这样会进行死循环的(infinite loop.)

 

validates_confirmation_of

# 重复性验证

# 用于验证密码,邮件

# 重复验证的元素必须以"_confirmation"结尾

 

class Person < ActiveRecord::Base

  validates_confirmation_of :email

end

 

<%= text_field :person, :email %>

<%= text_field :person, :email_confirmation %>

 

# 修改后,重复验证的元素不能为空

class Person < ActiveRecord::Base

  validates_confirmation_of :email

  validates_presence_of :email_confirmation

end

 

validates_exclusion_of

# 验证的属性是否不包含在给定集中

 

class Account < ActiveRecord::Base

  validates_exclusion_of :subdomain, :in => %w(www),

    :message => "Subdomain %{value} is reserved."

end

 

:in 用来预设的验证集合

 

validates_format_of

# 验证格式

 

class Product < ActiveRecord::Base

  validates_format_of :legacy_code, :with => /\A[a-zA-Z]+\z/,

    :message => "Only letters allowed"

end

 

:with 有来设置格式

 

validates_inclusion_of

# 验证的属性是否包含在给定集中

 

class Coffee < ActiveRecord::Base

  validates_inclusion_of :size, :in => %w(small medium large),

    :message => "%{value} is not a valid size"

end

 

:in 用来预设的验证集合

 

validates_length_of

# 验证的属性长度

 

class Person < ActiveRecord::Base

  validates_length_of :name, :minimum => 2

  validates_length_of :bio, :maximum => 500

  validates_length_of :password, :in => 6..20

  validates_length_of :registration_number, :is => 6

end

 

:minimum   # 设置属性最小长度

:maximum   # 设置属性最大长度

:in        # 指定一个区间

:is        # 必须指定一个值 

 

:wrong_length  # 长度发生错误时,显示的信息

:too_long      # 长度超出时,显示的信息

:too_short     # 长度不足时,显示的信息

 

validates_numericality_of

# 指定数字验证

 

class Player < ActiveRecord::Base

  validates_numericality_of :points

  validates_numericality_of :games_played, :only_integer => true

end

 

:only_integer       # 必须为整数

:greater_than       # >

:greater_than_or_equal_to   # >=

:equal_to           # =

:less_than          # <

:less_than_or_equal_to      # <=

:odd                # 奇数

:even               # 偶数

 

validates_presence_of

# 判空操作

 

class Person < ActiveRecord::Base

  validates_presence_of :name, :login, :email

end

 

validates_uniqueness_of

# 唯一性验证

 

class Account < ActiveRecord::Base

  validates_uniqueness_of :email

end

 

validates_with

# 使用验证类来进行验证

 

class Person < ActiveRecord::Base

  validates_with GoodnessValidator

end

 

class GoodnessValidator < ActiveRecord::Validator

  def validate

    if record.first_name == "Evil"

      record.errors[:base] << "This person is evil"

    end

  end

end

 

当发生错误信息时,没有缺省的错误信息,需要向error添加错误信息

 

validator类有两个缺省的参数

record    # 被验证的类

options   # 额外的选项

 

validates_each

# 使用block对多个值进行验证

 

 

Ref:

http://guides.rubyonrails.org/active_record_validations_callbacks.html

分享到:
评论

相关推荐

    Laravel开发-laravel-form-helpers

    至于`Validation-helper-master`这个压缩包文件,很可能包含了`laravel-form-helpers`的源代码,供开发者学习和自定义。通常,你可以解压文件,查看其内部结构,了解如何安装和使用这个库,或者根据需要进行定制和...

    使用SAX验证XML格式--DTD验证

    在IT行业中,XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,其结构化特性使得数据在不同系统间交换变得容易。为了确保XML文档的结构正确无误,我们可以使用验证机制,其中SAX(Simple API ...

    非常全面的变淡校验规则

    - **jStarValidation.helpers.js**:这是一个JavaScript库,提供了丰富的验证辅助方法,用于简化表单验证的实现。 - **自定义验证规则**:该库允许开发者定义自己的验证函数,满足特殊需求。 - **错误提示**:库...

    使用SAXParser(SAXParserFactory.newInstance())验证XML文件格式---XSD

    我们需要实现`org.xml.sax.helpers.DefaultHandler` 或自定义的ContentHandler类,重写其中的关键方法,如`startElement()`, `endElement()`, `characters()` 和 `warning()`, `error()`, `fatalError()` 等,以便...

    chuk.Helpers

    12. **数据验证(Data Validation)**:为了确保输入的数据符合特定格式或规则,"chuk.Helpers"可能包含数据验证的辅助方法,如邮箱验证、手机号码验证等。 13. **日志记录(Logging)**:良好的日志记录可以帮助...

    Wrox - Professional ASP NET MVC 4 Oct 2012

    数据验证是确保数据完整性与安全性的关键环节。本章讲解了如何利用数据注解对模型进行验证,包括客户端和服务器端验证的实现机制。 #### 7. 会员认证、授权与安全(Membership, Authorization, and Security) 安全...

    net+mvc初学者示例

    - **验证(Validation)**:ASP.NET MVC支持数据注解验证,可以在模型类中定义验证规则,确保输入数据的有效性。 - **依赖注入(Dependency Injection)**:ASP.NET MVC鼓励使用依赖注入,以实现组件间的解耦和测试友好...

    postal-code-helpers:Intl的助手。邮递区号

    轻量级助手,用于与数据一起基于数据提取,验证或定位邮政编码。 安装 &gt; npm i postal-code-helpers import postalCodeHelpers from 'postal-code-helpers' ; 用法 从字符串中提取邮政编码 postalCodeHelpers . ...

    ASP.NET MVC框架开发系列课程(1):MVC模式与ASP.NET MVC框架概述

    8. **验证(Validation)**:ASP.NET MVC框架集成了数据验证机制,允许开发者在模型层定义验证规则,然后在客户端和服务器端自动执行验证。 9. **单元测试**:由于MVC架构的解耦特性,ASP.NET MVC应用非常适合进行...

    Asp.net高级编程MVC4.0(英文版)

    书中的核心知识点涵盖了MVC4.0的主要领域,包括控制器(Controllers)、视图(Views)、模型(Models)、表单和HTML辅助(Forms and HTML Helpers)、数据注解与验证(Data Annotations and Validation)、会员资格...

    asp.net MVC基础教学

    验证(Validation)** ASP.NET MVC支持客户端和服务器端验证。通过数据注解,你可以轻松地在模型上定义验证规则,这些规则将在提交时自动执行。 **12. 翻译和本地化(Localization and Internationalization)** ...

    ASP.NET MVC4开发指南(保哥)

    6. **验证(Validation)**:ASP.NET MVC4支持客户端和服务器端的数据验证。通过数据注解,可以在模型类上定义验证规则,这些规则将在数据提交时自动执行。 7. **AJAX支持**:MVC4增强了对异步JavaScript和XML的...

    Professional ASP.NET MVC 3

    本章讲解了如何使用实体框架(Entity Framework)和其他ORM技术来操作数据库,如何实现数据验证,以及如何利用数据注释(Data Annotations)进行属性级别的约束检查。这些知识对于构建稳定可靠的数据驱动应用至关重要。 ...

    MVC学习之——Professional ASP.NET MVC 3

    为了确保数据的准确性和完整性,在客户端和服务端都需要实施数据验证。本章详细阐述了如何利用数据注解(Data Annotations)来进行模型级别的验证,例如Required、StringLength等特性。同时还介绍了服务器端验证的...

    jQuery表单插件

    jQuery Validation Plugin是用于验证表单输入的插件,它提供了丰富的预定义规则和自定义验证方法。例如,可以轻松实现邮箱、电话号码等格式的验证。同时,它还可以自定义错误消息和显示位置,提升用户体验。 3. **...

    七天学会asp.net mvc5 第七天源代码

    4. **验证(Validation)**:ASP.NET MVC5内置了数据验证功能,可以对模型属性进行验证,确保输入的数据符合预期格式。这包括客户端验证和服务器端验证。 5. **视图助手(View Helpers)**:这些是帮助在视图中创建HTML...

    Professional ASP.NET MVC 4

    #### 六、数据注释与验证(Data Annotations and Validation) - **Data Annotations**:一种元数据机制,可以在模型类的属性上添加验证规则。 - **Key Features**: - **Validation Attributes**:如`Required`、`...

    ASP.NET-Professional ASP.NET MVC 4 (2012)

    涵盖了数据模型的设计原则、实体框架(Entity Framework)的使用,以及如何通过模型实现数据验证和业务规则。 ### 表单和HTML辅助方法(Forms and HTML Helpers) 第五章介绍了如何使用HTML辅助方法来简化表单元素...

Global site tag (gtag.js) - Google Analytics