我有一个ActiveRecord对象的集合。我希望能够对这些对象中的每一个运行所有验证,而无需实际将它们保存到数据库中。我只想知道,如果他们将是有效的,我将它们保存到数据库。换句话说,我基本上想要为每个对象填充数据结构errors
。有没有办法做到这一点?或者我可能错过了errors
集合的生命周期?在不保存的情况下运行ActiveRecord验证
10
A
回答
23
您可以执行以下操作来检查模型是有效的:
@user = User.new
if @user.valid?
#do things
如果你想看到的错误是什么,你可以这样做:
@user = User.new
unless @user.valid?
@user.errors.each {|k, v| puts "#{k.capitalize}: #{v}"}
调用“。有效?”方法运行验证,将所有错误都放入一个ActiveRecord :: Errors对象中,可以像我在上面的例子中那样访问它。如果你喜欢的话,可以在控制台上试一下例子来体验一下。
2
在对象上运行#valid?
方法将运行所有验证并填充errors
结构。
dude = Person.new
unless dude.valid?
# Examine errors
end
相关问题
- 1. 在不保存的情况下验证habtm关联的长度
- 2. 你可以在不保存的情况下验证NSManagedObject吗?
- 3. 在没有任何身份验证的情况下运行SSH
- 4. 如何在不保存nodejs |的情况下验证记录sailsjs |水线
- 5. SmartLock在不询问的情况下保存Facebook凭证
- 6. Tomcat REALM在某些情况下不进行身份验证
- 7. 验证字段在这种情况下
- 8. Qt5:在不保存到硬盘的情况下下载文件
- 9. 在某些情况下只保存NSManagedContext
- 10. 在REST-有保证的情况下执行asyncDispatch()
- 11. LDAP在不知道他的情况下验证用户uid
- 12. 在不尝试打印的情况下验证Postscript?
- 13. 在不知道格式的情况下验证日期
- 14. 不能在没有身份验证的情况下创建桶
- 15. 保证金,填充不工作在我的情况下
- 16. 保证金0汽车并不在我的情况下工作
- 17. 允许在某些情况下进行空验证
- 18. 如何在不导入root证书的情况下验证X509证书?
- 19. Ajax在这两种情况下运行
- 20. Rails after_filter在什么情况下运行?
- 21. 在哪种情况下运行__init__.py?
- 22. CodeIgniter Active Record:在不运行SQL的情况下进行调试
- 23. 熊猫:如何在不使用scikit的情况下进行交叉验证?
- 24. 在不登录的情况下通过iframe进行跨域身份验证
- 25. 如何在不停止测试执行的情况下验证文本RC
- 26. 是否可以在不刷新窗口的情况下进行“密码”验证?
- 27. 如何在不刷新页面的情况下使用表单进行验证?
- 28. 为什么jQuery Validate插件在不调用validate()的情况下进行验证?
- 29. 如何在不发送信号的情况下保存模型?
- 30. 在不保存文件的情况下合并PDF文件
沿着类似的路线,我试图显示基于记录的发布链接是否适用于发布或不发布。在我的验证中,我使用验证:如果格式。有没有简单的方法来改变属性说:真,然后检查它是否有效发布? 例如, post = Post.new(:title =>“title”,:published => false) post.published = true if post.valid? post.published = false – chetu 2012-03-05 17:37:12