我有一個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. 在不保存的情況下獲取驗證錯誤消息
- 3. 你可以在不保存的情況下驗證NSManagedObject嗎?
- 4. 在沒有任何身份驗證的情況下運行SSH
- 5. 如何在不保存Rails的情況下驗證字段的唯一性?
- 6. 如何在不保存nodejs |的情況下驗證記錄sailsjs |水線
- 7. SmartLock在不詢問的情況下保存Facebook憑證
- 8. Tomcat REALM在某些情況下不進行身份驗證
- 9. 驗證字段在這種情況下
- 10. base64在不保存的情況下對圖像進行編碼
- 11. Qt5:在不保存到硬盤的情況下下載文件
- 12. 在某些情況下只保存NSManagedContext
- 13. 如何在不使用驗證碼的情況下保護JSON電話
- 14. 在REST-有保證的情況下執行asyncDispatch()
- 15. 在不驗證用戶身份的情況下驗證用戶名和密碼
- 16. 在不知道格式的情況下驗證日期
- 17. 在不嘗試打印的情況下驗證Postscript?
- 18. LDAP在不知道他的情況下驗證用戶uid
- 19. 在不提交的情況下驗證表單
- 20. 如何在不觸發驗證的情況下觸發p:fileDownload
- 21. 不能在沒有身份驗證的情況下創建桶
- 22. MVC 4在不使用JQuery的情況下驗證複選框
- 23. 保持ASP.NET網站在沒有會話的情況下運行?
- 24. 如何確保在禁用javascript的情況下運行網站
- 25. ActiveRecord驗證:即使驗證失敗,關聯也會保存
- 26. 保證金,填充不工作在我的情況下
- 27. 保證金0汽車並不在我的情況下工作
- 28. 允許在某些情況下進行空驗證
- 29. VBScript在不執行它的情況下驗證代碼的正確性
- 30. 如何在不導入root證書的情況下驗證X509證書?
沿着類似的路線,我試圖顯示基於記錄的發佈鏈接是否適用於發佈或不發佈。在我的驗證中,我使用驗證:如果格式。有沒有簡單的方法來改變屬性說:真,然後檢查它是否有效發佈? 例如, post = Post.new(:title =>「title」,:published => false) post.published = true if post.valid? post.published = false – chetu 2012-03-05 17:37:12