rails数据交互(2)

补充上一章的内容:当代码改变,要重新进入console

模型的数据验证: 对不符合要求的对象无效,不予创建

  1. 存在性验证:
    在User实体类中添加如下代码,进行存在性验证,关键函数(validates),关键字(presence: true/false):
validates :userName, presence: true

在console中:

 irb(main):001:0> @user = User.new
    => #<User id: nil, userName: nil, email: nil, created_at: nil, updated_at: nil>
 irb(main):002:0> @user.save
   (0.1ms)  begin transaction
   (0.1ms)  rollback transaction
=> false
 irb(main):003:0> @user.errors.full_messages
=> ["Username can't be blank"]
  1. 长度验证:关键函数(validates),关键字(length:{maximum: 20})
validates :userName, presence: true , length: {maximum: 20}

加入不满足条件,会报错:

 irb(main):004:0> @user.errors.full_messages
=> ["Username is too long (maximum is 20 characters)"]
  1. 格式验证: 关键字(format: {with: 正则表达式})
EMAIL = /\A[\w+\-.]+\.[a-z]+\z/i
validates :email, presence: true, format: {with: EMAIL}

ruby的正则表达式有点迷……需要再学
然后加入不满足条件的,报错如下:

 irb(main):004:0> @user.errors.full_messages
=> ["Email is invalid"]
  1. 唯一性验证:关键字(uniqueness: {case_sensitive: false})
    EMAIL = /\A[\w+\-.]+\.[a-z]+\z/i
    validates :userName, presence: true , length: {maximum: 20}, uniqueness: {case_sensitive: false}
    validates :email, presence: true, format: {with: EMAIL}, uniqueness: {case_sensitive: false}

但是这种唯一性验证,仅仅是初级手段,存在些许问题,需要在数据库中进行唯一性设置,以后再说,但是在初级阶段来说,够用了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值