我有一個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