Ruby on Rails 2.1 - 用户输入验证
以下是您可以对用户输入执行的验证列表 −
validates_presence_of
以下代码检查 last_name 和 first_name 是否包含数据且不为 NULL。
validates_presence_of :firstname, :lastname
validates_length_of
以下示例显示了对单个文件的各种验证。这些验证可以单独执行。
validates_length_of :password, :minimum => 8 # 超过 8 个字符 :maximum => 16 # 少于 16 个字符 :in => 8..16 # 8 到 16 个字符之间 :too_short => 'way too short' :too_long => 'way to long'
validates_acceptance_of
以下代码将仅接受选项字段的"Y"值。
validates_acceptance_of :option :accept => 'Y'
validates_confirmation_of
字段 password 和 password_confirmation 必须匹配,并将按以下方式使用 −
validates_confirmation_of :password
validates_uniqueness_of
以下代码设置了 user_name 唯一的条件。
validates_uniqueness_of :user_name
validates_format_of
以下代码验证给定的电子邮件 ID 是否为有效格式。它显示了如何使用正则表达式来验证字段。
validates_format_of :email :with => /^(+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i
validates_numericality_of
验证给定字段是否为数字。
validates_numericality_of :value :only_integer => true :allow_nil => true
validates_inclusion_of
以下代码检查传递的值是否为枚举并且是否在给定的范围内。
validates_inclusion_of :gender, :in => %w( m, f )
validates_exclusion_of
以下代码检查给定的值是否不在给定范围内。
validates_exclusion_of :age :in => 13..19
validates_inclusion_of
以下代码检查给定值是否在给定范围内。这与validates_exclusion_of相反。
validates_inclusion_of :age :in => 13..19
validates_associated
它验证关联对象是否有效。
所有验证的选项
您可以将以下选项与所有验证一起使用。
:message => 'my own errormessage' 使用此选项在验证失败时打印自定义错误消息。
:on => :create or :update 这将在您只想在创建或更新记录时执行验证的情况下使用。如果您使用 :create,则此验证仅在数据库上有创建操作时才有效。