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,则此验证仅在数据库上有创建操作时才有效。

rails-quick-guide.html