保存成功后可以回滚记录吗?
让我有一个带有属性名称、电子邮件等的用户模型。
例如。
u=User.new
u.name="test_name"
u.email="test@email.com"
u.save
现在记录将成功保存在数据库中,之后我想回滚我的事务(而不是销毁或删除)。有什么想法吗?
保存成功后可以回滚记录吗?
让我有一个带有属性名称、电子邮件等的用户模型。
例如。
u=User.new
u.name="test_name"
u.email="test@email.com"
u.save
现在记录将成功保存在数据库中,之后我想回滚我的事务(而不是销毁或删除)。有什么想法吗?
您可以通过交易执行此操作,请参阅http://markdaggett.com/blog/2011/12/01/transactions-in-rails/
例子:
User.transaction do
User.create(:username => 'Nemu')
raise ActiveRecord::Rollback
end
还有一个叫做 PaperTrail 的 gem,我们一直在使用它并取得了巨大的成功。它可能比你想要的多一点。
PaperTrail 可让您跟踪模型数据的更改。它适用于审计或版本控制。您可以查看模型在其生命周期中的任何阶段是如何看待的,将其还原为任何版本,甚至在它被销毁后取消删除它。
https://github.com/airblade/paper_trail
无从属关系。
您可以在沙盒模式下运行控制台
$> rails c --sandbox