別のブールフィールドの値に基づいてブールフィールドをfalseに設定しようとしています。ActiveRecordモデルで次のことを試しました。
before_save :reconcile_xvent
def reconcile_xvent
self.xvent_hood = false if !self.xvent_plenum?
end
しかし、これは機能しません。今、私のユニットテストの多くは次のように失敗します:
ActiveRecord::RecordNotSaved: ActiveRecord::RecordNotSaved
xvent_plenumがfalseの場合、xvent_hoodをfalseに設定するにはどうすればよいですか?
アップデート
動作するものは次のとおりです(そのうちのいくつかは以下のコメント/回答から来ています):
before_validation :reconcile_xvent
def reconcile_xvent
if self.xvent_hood?
self.xvent_hood = false unless xvent_plenum?
end
end
「ifself.xvent_hood?」なしでそれを機能させることができませんでした。部....