(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