0

次のモデルと関連付けがあります。

ステータス has_many :トランザクション、foreign_key: :transtatusid

トランザクションの所属先 :status、foreign_key: :transstatusid

トランザクション レコード t1 とステータス レコード s3 がありました。私は次のことをするつもりでした:

 t1.transtatusid = s3.id
 t1.save

ただし、代わりに誤ってこれを行いました

 t1.transtatusid = s3
 t1.save

問題は、Rails が不平を言っていないということです。割り当てを無視しただけです。

それは不平を言うべきでしたか?そうでない場合、なぜですか?

Rails3.2.1 と Ruby 1.9.3 を MySQL で使用しています。

4

1 に答える 1

0

私の知る限り、Railsは保存時のエラーを無視し、オブジェクトの古い状態を続行します。例外を発生させたい場合は、saveを使用する必要があります。代わりは。その後、エラーメッセージ、フラッシュメッセージ、または類似のメッセージを使用して、スローされたエラーから救済できます。

于 2012-12-18T17:19:34.517 に答える