我有一个模型,如果它被赋予某种状态,则该状态将永远无法再次更改。我试图通过在模型上放置一个 before_save 来检查状态是什么,如果它被设置为特定状态,则引发异常。
问题是这个——
def raise_if_exported
if self.exported?
raise Exception, "Can't change an exported invoice's status"
end
end
这工作正常,但是当我最初通过执行以下操作将状态设置为导出时 -
invoice.status = "Exported"
invoice.save
引发异常是因为状态已经设置为模型而不是数据库上的导出(我认为)
那么,一旦将其设置为“导出”,有没有办法防止该属性被更改?