如何通过ruby on rails模型使列值为空?例如,我有一个checkbox
称为'include_on_epc'
, textbox
称为'removal_reason'
。
如果复选框被选中,我想在数据库中设置文本框的值应为NULL。
我试了下面的方法,它不起作用。
class Emm::Rrr::Result < ActiveRecord::Base
before_save :no_removal_reason_when_including_on_epc
private
def no_removal_reason_when_including_on_epc
if include_on_epc == 1
self.removal_reason == nil
end
end
end
这里有两个问题
-
正如Jakob指出的那样,
self.removal_reason == nil
将removal_reason
与nil
进行比较,并且您希望将removal_reason
设置为nil
。因此,self.removal_reason = nil
绝对是你想要的。 -
如果
include_on_epc
是boolean
列,比较1
是不会工作的。您可能需要一个简单的if include_on_epc
,因为它的值可能是true
或false
,而不是1
或0
,在Ruby中是1 != true
。
看来self.removal_reason == nil
应该是self.removal_reason = nil
。你想要赋值,而不是比较。: -)