我正在尝试根据另一个布尔字段的值将布尔字段设置为 false。我使用 ActiveRecord 模型尝试了以下操作:
before_save :reconcile_xvent
def reconcile_xvent
self.xvent_hood = false if !self.xvent_plenum?
end
但这不起作用。现在,我的许多单元测试都失败了:
ActiveRecord::RecordNotSaved: ActiveRecord::RecordNotSaved
如果 xvent_plenum 为假,我如何将 xvent_hood 设置为假?
更新
这是有效的(其中一些来自下面的评论/答案):
before_validation :reconcile_xvent
def reconcile_xvent
if self.xvent_hood?
self.xvent_hood = false unless xvent_plenum?
end
end
如果没有“if self.xvent_hood?”,我无法弄清楚如何让它工作。部分....