2012-05-11 54 views
0

我有以下型號和協會:Rails的ActiveRecord的似乎都忽略了一個模型誤差

狀態的has_many:交易,foreign_key:transtatusid

交易belongs_to的:狀態,foreign_key:transstatusid

我有一個交易記錄t1和一個狀態記錄s3。我的意思是要做到以下幾點:錯誤

t1.transtatusid = s3 
t1.save 

的事情是,Rails的沒有抱怨

t1.transtatusid = s3.id 
t1.save 

,但是我不是這樣做。它只是忽略了分配。

它是否應該抱怨?如果不是,爲什麼不呢?

我用戶Rails3.2.1和Ruby 1.9.3與MySQL。

回答

0

據我所知,Rails將忽略保存時的錯誤並繼續處理對象的舊狀態。 如果你想引發異常,你必須使用save!代替。 之後,您可以通過錯誤消息,Flash消息或類似命令從拋出的錯誤中解救出來。

+0

你有什麼例子嗎? – IronMan84