5-13 Rspec实际(笔记)

validates处理验证错误:详见ActiveModel::Errors文档 

一,errors

ActiveModel::Errors的实例包含所有的❌。每个错误:key是每个属性的name, value是一个数组,包含错误消息string. 

例子:

person = Person.new 

person.errors.messages   #=> {:name => ["can't be blank", "is too short"], ...}

二 ,errors[]

通过key获取value ,如person.errors[:name]  #=> ["can't be blank", "is too short"]

三, errors.add(atr, msg) 或者 errors.message[atr] << "msg"

手动添加某属性的错误message

errors.full_message: 友好显示所有错误message(规范了格式,便于阅读)

full_message等同to_a

四, errors.details,

在add()方法内增加限制参数,not_allowed: "xxx" 

五, errors[:base] << "string"

把错误message添加到整个对象上。不是针对属性。不管什么错误,只像把对象标记为无效,就使用这个方法。 

六,errors.clear 和 errors.empty?

清除errors 集合中所有message, errors.empty?查看是否错误集合是空的,配合clear使用。

七,errors.size,返回错误消息总数。 等同errors.count

八,视图上显示错误消息。

可以使用scarfold,在_form.html.erbzhong 自动加入ERB代码。或者自己写。

猜你喜欢

转载自www.cnblogs.com/chentianwei/p/9031423.html