0

我有以下模型和关联:

状态 has_many :transactions, foreign_key: :transtatusid

事务属于_to :status, foreign_key: :transstatusid

我有一个交易记录 t1 和一个状态记录 s3。我的意思是执行以下操作:

 t1.transtatusid = s3.id
 t1.save

但是我却错误地这样做了

 t1.transtatusid = s3
 t1.save

问题是 Rails 没有抱怨。它只是忽略了分配。

它应该抱怨吗?如果不是,为什么不呢?

我使用 MySQL 的 Rails3.2.1 和 Ruby 1.9.3。

4

1 回答 1

0

据我所知,Rails 将忽略保存时的错误并继续使用对象的旧状态。如果要引发异常,则必须使用 save! 反而。之后,您可以使用错误消息、闪存消息或类似消息从引发的错误中解救出来。

于 2012-12-18T17:19:34.517 回答