如何通过rails模型将值设置为null



如何通过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

这里有两个问题

  1. 正如Jakob指出的那样,self.removal_reason == nilremoval_reasonnil进行比较,并且您希望 removal_reason设置为nil。因此,self.removal_reason = nil绝对是你想要的。

  2. 如果include_on_epcboolean列,比较1是不会工作的。您可能需要一个简单的if include_on_epc,因为它的值可能是truefalse,而不是10,在Ruby中是1 != true

看来self.removal_reason == nil应该是self.removal_reason = nil。你想要赋值,而不是比较。: -)

相关内容

  • 没有找到相关文章

最新更新