我有一组ActiveRecord对象.我希望能够为每个对象运行所有验证,而不实际将它们保存到数据库中.我只是想知道他们是否有效我将它们保存到数据库中.换句话说,我基本上想要errors
为每个对象填充数据结构.有没有办法做到这一点?或许我错过了关于该系列生命周期的一些东西errors
?
您可以执行以下操作来检查模型是否有效:
@user = User.new if @user.valid? #do things
如果要查看错误是什么,可以执行以下操作:
@user = User.new unless @user.valid? @user.errors.each {|k, v| puts "#{k.capitalize}: #{v}"}
调用".valid?" 方法运行您的验证,将所有错误放入ActiveRecord :: Errors对象,可以像上面的示例中那样访问它.如果您愿意,可以在控制台中尝试使用这些示例来感受它.