2015-05-12 16 views
2

我學到了艱辛的道路,只有當記錄通過驗證ActiveRecord如何驗證記錄已成功保存在數據庫中?

model.save 

將返回true,如果有添加/在數據庫端更新模型的任何錯誤,但它仍然返回true。 因此使用

if model.save 
     render 'yayy' 
else 
     render 'error' 
end 

是不可靠的。

是否有任何方法具有相同的功能,但只有在數據庫成功更新時才返回true,否則驗證記錄已成功保存在數據庫中的最佳方式是什麼。

(如果它很重要,我使用的是Postgres作爲數據庫)

+1

如果數據庫在保存期間發生錯誤,那麼應該傳播回Rails並在那裏引發錯誤。有沒有發現情況並非如此?請參閱http://apidock.com/rails/ActiveRecord/Persistence/save –

+1

當發生這種情況時,請提供可重現的示例/場景。並確保你沒有捕捉到應該中止保存並導致它返回誤報的錯誤。 –

回答

相關問題