这是我的 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 以防止当前对象保存时获取要保存的新记录..