在创建新用户时(在我的用户模型中)我也想创建一个条带客户。这两项行动只有在他们共同取得成功时才能完成(就像我不想要没有用户的客户,反之亦然)。出于这个原因,我认为将它们包装在一个事务中是个好主意。但是,我一定不能正确地做到这一点。我不相信我正确地覆盖了create方法。如果有人有一个建议作为更好的方式来做到这一点或我做错了,将不胜感激。谢谢!
def create
User.transaction do
super
create_stripe_customer(self)
end
end
def destroy
User.transaction do
super
delete_stripe_customer(self)
end
end
答案 0 :(得分:2)
我已经对你的问题进行了一些研究,只要在失败的情况下引发异常,使用after_create似乎就可以了。这也将回滚交易。只需使用默认的回调。