.saveがfalseを返すモデルオブジェクトがあります。その後、空のハッシュである.errorsプロパティがあります。ハッシュに問題のリストを含めるべきではありませんか?保存が機能しない理由を他にどのように判断できますか?
TY、フレッド
.saveがfalseを返すモデルオブジェクトがあります。その後、空のハッシュである.errorsプロパティがあります。ハッシュに問題のリストを含めるべきではありませんか?保存が機能しない理由を他にどのように判断できますか?
TY、フレッド
これは、コールバックの 1 つがおそらく保存を停止しているが、検証エラーをリストしていないことを意味します。
特にbefore_
コールバックの戻り値を確認し、それらが返されていないことを確認しますfalse
それらが を返す場合false
、アクティブ レコードは今後のコールバックを停止し、保存から false を返します。
それについては、こちらの「コールバックのキャンセル」の下で少し読むことができます
1) before_create、before_save、before_updateを無効にして、その日の保存場所を確認する
2) ロールバックがこれらのメソッドのいずれかによって引き起こされた場合は、ロールバックする予定がない場合にそれらのメソッドが true を返すことを確認してください。
たとえば、boolean フィールドのデフォルト値を nil を回避するように設定する場合、おそらくこのようにするでしょう。
def set_defaults_before_create
self.my_boolean_field ||= false
end
この例では、メソッドset_defaults_before_createは常にfalseを返すため、トランザクションをロールバックします。したがって、trueを返すようにリファクタリングします
def set_defaults_before_create
self.my_boolean_field ||= false
true
end