6

保存成功后可以回滚记录吗?

让我有一个带有属性名称、电子邮件等的用户模型。

例如。

u=User.new
u.name="test_name"
u.email="test@email.com"
u.save

现在记录将成功保存在数据库中,之后我想回滚我的事务(而不是销毁或删除)。有什么想法吗?

4

3 回答 3

8

您可以通过交易执行此操作,请参阅http://markdaggett.com/blog/2011/12/01/transactions-in-rails/

例子:

User.transaction do
  User.create(:username => 'Nemu')
  raise ActiveRecord::Rollback
end
于 2013-02-22T10:27:58.200 回答
3

还有一个叫做 PaperTrail 的 gem,我们一直在使用它并取得了巨大的成功。它可能比你想要的多一点。

PaperTrail 可让您跟踪模型数据的更改。它适用于审计或版本控制。您可以查看模型在其生命周期中的任何阶段是如何看待的,将其还原为任何版本,甚至在它被销毁后取消删除它。

https://github.com/airblade/paper_trail

无从属关系。

于 2013-02-22T15:47:38.377 回答
3

您可以在沙盒模式下运行控制台

$> rails c --sandbox
  • 退出时,所有更改都回滚到进入点。
于 2013-02-22T10:30:21.007 回答