我有一个如下所示的 aasm 事件:
event :close do
transitions from: :normal, to: :closed
after do
action_1(...)
action_2(...)
end
end
现在,我注意到当我关闭时!action2 出现错误,事件未保存在数据库中。我猜事情的顺序是 1. 实例的转换 2. 回调之后 3. 保存
除了在“之后”块级别下捕获错误之外,是否有在“保存”之后触发的回调,我可以使用?
我有一个如下所示的 aasm 事件:
event :close do
transitions from: :normal, to: :closed
after do
action_1(...)
action_2(...)
end
end
现在,我注意到当我关闭时!action2 出现错误,事件未保存在数据库中。我猜事情的顺序是 1. 实例的转换 2. 回调之后 3. 保存
除了在“之后”块级别下捕获错误之外,是否有在“保存”之后触发的回调,我可以使用?
这样做的原因是 aasm 将保存包装到事务中,该事务在异常时回滚。
目前没有可用于您目的的回调,但我可以想象类似
event :close do
transitions from: :normal, to: :closed
assure do
action_1(...)
action_2(...)
end
end
action_1
即使在出现异常的情况下action_2
也会在哪里执行。
请向github 存储库添加一个问题,我会处理的。