我想根据另一个布尔字段的值将一个布尔字段设置为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
我不知道如何在没有 "if self.xvent_hood?" 部分的情况下使其工作...
xvent_hood
需要等于xvent_plenum
,那么你应该只需执行xvent_hood = xvent_plenum
。 - MurifoXunless
。unless self.xvent_plenum
,否则self.xvend_hood = false
。 - MurifoX