0
在我的控制器中,我想通過重定向回導致出現異常的控制器操作來處理ActiveRecord :: RecordInvalid異常,但我還想保留用戶輸入的表單數據。有處理這個問題的最佳方法嗎?如何在處理異常時保留字段數據?
rescue_from ActiveRecord::RecordInvalid do |exception|
redirect_to :back, alert: exception.message
end
這當前重定向並正確顯示閃光消息,但我不確定保留表單數據的最佳做法是什麼。提前致謝。
感謝您的答覆私有方法,但我不知道有你的榜樣正在處理任何異常。你能澄清嗎? – Joey
當您無法將記錄保存到數據庫時引發RecordInvalid。我的答案通過檢查記錄是否保存來處理這個異常。如果它沒有保存,那麼你知道你提出了RecordInvalid,在這種情況下,你渲染的動作是新的。閱讀這個http://stackoverflow.com/a/14976232/1429856,因爲它解釋了爲什麼渲染新會保持你的params。 – toolz
也許.save引發並處理它自己的異常,並在有異常的情況下返回false(.save!實際上會暴露異常,是否正確?)。 – Joey