Rails rails 中 valid?的意思

zhangyuxiu · February 02, 2013 · Last by zhangyuxiu replied at February 02, 2013 · 3239 hits

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

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

Unknow user #2 February 02, 2013

它会调用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 的合法性呢?

You need to Sign in before reply, if you don't have an account, please Sign up first.