首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

rails顶用validates进行合法性验证

2013-12-30 
rails中用validates进行合法性验证活动通中注册信息的验证都是自己写代码验证的,重构改为用rails自带的验

rails中用validates进行合法性验证
活动通中注册信息的验证都是自己写代码验证的,重构改为用rails自带的验证机制验证的,即用validates验证。
User模型中对存在性的验证是使用 validates 方法,传入 presence: true 参数,如下:

class User < ActiveRecord::Base  validates :name, presence: true或者  validates(:name, presence: true)end

还可以加上长度验证:
validates :name,  presence: true, length: { maximum: 50 }

也可以格式验证,比如对Email的验证:
 VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i  validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }

其中将正则表达式定义为常量 VALID_EMAIL_REGEX,Ruby 中的常量都是以大写字母开头的。/\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i        完整的正则表达式               /                                正则表达式开始
                \A                           匹配字符串的开头
               [\w+\-.]+         一个或多个字母、加号、连字符、或点号
              @                          匹配 @ 符号
               [a-z\d\-.]+       一个或多个小写字母、数字、连字符或点号
                    \.                   匹配点号
                  [a-z]+                 一个或多个小写字母
                    \z                   匹配字符串结尾
                     /                    结束正则表达式
                     i                    不区分大小写

唯一性验证:
validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }, uniqueness: true

验证 Email 地址的唯一性,不区分大小写:
 validates :email, presence: true,                    format: { with: VALID_EMAIL_REGEX },                    uniqueness: { case_sensitive: false }

热点排行