Ruby on Rails中的validates验证
今天重构活动通时代码时学习了一下RubyonRails中的validates验证机制,validates验证机制是rails自带的,虽然存在局限性,但用起来还是比我们自己写验证要简单许多,下面就简单学习一下吧
(1)用validates对User模型的name属性进行存在性验证:
打开app/models/user.rb,添加如下代码
class User < ActiveRecord::Base validates :name, presence: true end
validates只不过是一个方法,也可写成
class User < ActiveRecord::Base validates(:name, presence: true) end
(2)对name属性进行长度验证:
class User < ActiveRecord::Base validates :name, presence: true, length: { maximum: 50 } end
(3)对User模型的email属性进行格式性验证:
使用正则表达式验证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中的常量都是以大写字母开头的。
使用上面的代码可以确保只有匹配这个正则表达式的Email地址才是合法的。(因为VALID_EMAIL_REGEX以大写字母开头,是个常量,所以其值是不能改变的。)
(4)验证Email地址的唯一性:
validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }, uniqueness: true
validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }, uniqueness: { case_sensitive: false }
直接把true换成了case_sensitive:false,Rails会自动指定:uniqueness的值为true
相关推荐
wl00 2020-10-28
EricNet 2020-07-05
EricNet 2020-05-27
何志文 2020-05-11
JOO 2020-04-26
happyfreeangel 2020-04-09
Poisedflw 2020-03-23
yangliuhbhd 2020-03-06
Ben的程序员生涯 2013-06-01
chenshuixian 2013-06-01
wes0 2014-05-31
mrice00 2019-12-20
EricNet 2019-12-11
89304896 2019-12-08
lihaoningxia 2013-07-09
userguanguan 2015-03-16