2005-12-21
TAG:ROR rails 表单验证

    今天做好了一个完整的对一个“部门”实体的增删改操作,很简单,却搞了我半个下午,其他的到好说,主要的时间就是放在这个验证上了。
    本来的计划是验证操作放在最后再做,可是今天发现,验证也是分为两类的,一种是纯粹的表单验证,例如验证一个字段不能为空、验证某个框框必须为数字之类的。这些通常在对安全性要求不高的地方,只用JAVASCRIPT做就完全可以了。不过还有另外一种验证,使要涉及到数据库操作的,那就是需要操作数据库的数据级别的验证,这类验证的结果通常会依赖已经存在的数据,比如验证某字段必须是唯一。
    原来在JAVA里的做法,通常这部分验证是要写在controller里面的,先进性数据库的查操作再确定是否新加的数据是合法数据,而在ROR里面,采取了更为优雅的做法,这类验证操作都是放在model里面做的,这就好像,model自己来保证自己是完全合法的。而且做法也非常简单:
    validates_uniqueness_of :name
    OK,这么一搞,这个model的name字段已经有了唯一性约束,如果违反了该约束,ROR的会返回前面提交表单的页面,如果你在里面使用了“error_messages_for()”函数,就能直接显示出错误信息(错误信息业是通过validates_uniqueness_of制定的)。在这里,ROR又用了一个约束换取了简单,就是出错后的操作,自动返回提交页面,其实通常情况下大家也都是如此做的。





todayhill @ 23:59:33 | 引用 0 | 编辑



评论
发表评论
 姓名: 
 E-mail: 
 地址: