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 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值