这是我的 before_save 方法:
  before_save :check_postal
  def check_postal
    first_three = self.postal_code[0..2]
    first_three.downcase!
    postal = Postal.find_by_postal_code(first_three)
    if postal
      self.zone_id = postal.zone_id
    else
      PostalError.create(postal_code: self.postal_code)
      return false
    end
  end
一切运行良好,self.zone_id = postal.zone_id但在else语句中,我PostalError.create(postal_code: self.postal_code)没有将记录保存到数据库中。
我知道这与return false声明有关,因为当我删除它时,它保存得很好——但这违背了目的..
如何PostalError在返回 false 以防止当前对象保存时获取要保存的新记录..