2011-04-14 21 views
0

我正在使用Rails 3和AJAX,並且有一個通過AJAX請求創建的父對象。該父母與孩子一起發送並保存全部。但是,如果一個孩子有錯誤,Rails將停止請求。有什麼辦法可以讓Rails忽略這個嗎?我明白正確的做法是在發送請求的Javascript中找到問題並修復它。但是,爲了學習,有沒有辦法告訴Rails一些錯誤可能是可以忽略的?Ruby on Rails - 禁止顯示錯誤消息

回答

1

要保存而不使用驗證:

@parent.save(:validate => false) 

另外,不要忘記你可以創建條件驗證規則如果需要的話。例如,可以通過bare_bones?添加一個虛擬屬性(一個未保存到數據庫的實例變量)?然後修改驗證,像這樣:

validates_presence_of :nickname, :unless => "bare_bones?" 

然後,在你的控制,你會做這樣的事情:

@parent = Parent.new params[:parent] 
@parent.bare_bones = true 
@parent.save() 

希望這有助於。

+0

很好的知道,謝謝! – Serodis 2011-04-14 23:36:37

1

您正在尋找異常處理。

begin 
    #code that may contain errors 
rescue 
    #what to do if an error is encountered 
end 
+0

嗯,這不完全是一個錯誤。這是一個失敗的驗證。當然,我期待的是失敗。但是,要忽略失敗,只是不採取行動。仍然繼續做其他事情。在這種情況下,請繼續保存其他可能通過的子項以及父級模型。 – Serodis 2011-04-14 22:54:21

相關問題