10 months ago

资料来源
资料验证及回呼
一个ActiveRecord Model的生命周期:包括了存储的资料验证,以及不同阶段的回呼机制。

Validation验证功能,可以设定资料的规则来检查资料的正确性。如果验证失败,就无法存进资料库。

Rails在存储的时候,会自动呼叫model物件的valid?方法进行验证,并将验证结果放在errors里面。
Validates_presence_of用来检查必填

Validates_length_of用来检查字串的长度

Validates_numericality_of用来检查必须是一个数字,以及数字的大小

Validates_uniqueness_of用来确保唯一 可以用:scope 来设定范围,用:case_sensitive来区分大小写

确保格式正确
Validates_format_of,加上正规表示法(regular expression)用来规定Email、URL网址、手机号码等等格式的正确性

Validates_inclusion_of用来检查资料必须只有某些值
Validates_exclusion_of用来确保资料一定不会是某些值

其他:
Validates_acceptance_of用来让使用者必须核选一个checkbox方块,比如已阅读使用者条款。

Validates_confirmation_of用在需要让使用者在表单输入两次的情况,例如密码确认。

可共用的验证参数:以下参数都可以套用在上述的验证方法上:
allow_nil允许资料是nil。也就是如果资料是nil,那就略过这个检查。
allow_blank允许资料是nil或空字串。
message设定验证错误时的讯息,若没有提供则会用Rails内建的讯息。
on可以设定只有新建立(:create)或只有更新时(:update)才验证。预设值是都要检查(:save)
If,unless可以设定只有某些条件才进行验证

Rails3之后支援整合写法

如何自定validation?
使用validate方法传入一个同名方法的Symbol即可,(def 同名)

资料库层级的验证

忽略资料验证

← 自动化测试归纳 保龄球算法测试 →
 
comments powered by Disqus