Rails rails 中 valid?的意思

zhangyuxiu · 2013年02月02日 · 最后由 zhangyuxiu 回复于 2013年02月02日 · 3238 次阅读

valid? 的意思是什么呢? 我知道是用来测试数据能否通过校验的。但是默认是使用哪个验证器进行校验呢?

如果是你,你会选用什么作为默认的?

匿名 #2 2013年02月02日

它会调用model内定义的所有validates验证方法,例如在 model 中定义了以下三个验证: validates :age, :numericality => true validates :username, :presence => true validates :username, :uniqueness => truevalid?就会检测所有的验证是否通过:年龄是否是数字,用户名是否存在且唯一 validatesActiveModel::Validations的类方法

可以自己在 rails console 里试试,先写一些验证,然后 new 一个实例,此时如果你看 errors,应该是 nil。这表明 model 里的验证尚未运行。然后对实例执行 valid?方法,你看到的结果无非就是 true or false,然后再看一下实例的 errors,你就会看到所有的验证错误信息。和你之前写的验证对照一下,你就知道哪些生效了(一般都是全部生效的)。

#2 楼 @lewisgrady 嗯,明白了,非常感谢!另外想问您: validates :redirect_uri, :redirect_uri => true 的意思是什么呢?由哪一个验证器来验证 redirect_uri 的合法性呢?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号