成功保存后可以回滚记录吗?
让我拥有一个包含属性名称,电子邮件等的用户模型。
对于前。
u=User.new
u.name="test_name"
u.email="test@email.com"
u.save
现在记录将成功保存在数据库中,之后我想回滚我的事务(不破坏或删除)。有什么想法吗?
答案 0 :(得分:8)
您可以对交易执行此操作,请参阅http://markdaggett.com/blog/2011/12/01/transactions-in-rails/
示例:
User.transaction do
User.create(:username => 'Nemu')
raise ActiveRecord::Rollback
end
答案 1 :(得分:3)
还有一种名为PaperTrail的宝石,我们一直在使用它取得了巨大的成功。它可能比你想要的多一点。
PaperTrail可让您跟踪模型数据的变化。这对你有好处 审计或版本控制。您可以看到模型在任何阶段的表现 它的生命周期,将其恢复为任何版本,甚至在之后取消删除 它被摧毁了。
https://github.com/airblade/paper_trail
没有任何从属关系。
答案 2 :(得分:2)
您可以在沙盒模式下运行控制台
$> rails c --sandbox