Ruby on rails 它能够回滚条带更新吗
我被要求增加条纹中所有计划的数量。因此,我用ruby编写了以下脚本,以删除旧计划,并创建具有相同id和不同金额的新计划:Ruby on rails 它能够回滚条带更新吗,ruby-on-rails,ruby,stripe-payments,Ruby On Rails,Ruby,Stripe Payments,我被要求增加条纹中所有计划的数量。因此,我用ruby编写了以下脚本,以删除旧计划,并创建具有相同id和不同金额的新计划: for stripe_plan in Stripe::Plan.list new_amount = (stripe_plan.amount*1.1).floor Stripe::Plan.delete(stripe_plan.id) new_stripe_plan = Stripe::Plan.create(
for stripe_plan in Stripe::Plan.list
new_amount = (stripe_plan.amount*1.1).floor
Stripe::Plan.delete(stripe_plan.id)
new_stripe_plan = Stripe::Plan.create(
nickname: stripe_plan.nickname,
amount: new_amount,
interval: stripe_plan.interval,
currency: stripe_plan.currency,
product: stripe_plan.product
)
问题是,如果其中一个失败(很可能不是),可能会导致某些计划更新,而其他计划则没有更新,这是不一致的
问题是:是否有任何事务方法可以在失败时回滚条带创建、更新和删除
如果这不是stackoverflow的问题,请评论,我将删除此项。您应该使用更新的成本,而不是修改现有计划的价格,然后将其分配给适当的用户。这将允许您在出现问题时简单地检查是否有用户使用旧计划 您不应该修改现有计划的价格,而应该使用更新后的成本,然后将其分配给适当的用户。这将允许您在出现问题时简单地检查是否有用户使用旧计划 Stripe是一个API,因此很可能不支持任何事务。您必须围绕它编写代码。记录所有更新,以便在需要时轻松回滚或修复。@Casper谢谢,我正在使用该解决方案,但我仍在寻找一种更好的方法来自动完成。Stripe是一种API,因此很可能没有任何事务支持。您必须围绕它编写代码。记录所有更新,以便在需要时轻松回滚或修复。@Casper谢谢,我正在使用该解决方案,但我仍在寻找更好的方法自动完成。我明白你的意思。如果出了问题,我们还得手动修复。谢谢,当然可以。我只是意识到我的代码会影响所有的计划,所以按照你的建议去做会更好。听我的,我明白你的意思。如果出了问题,我们还得手动修复。谢谢,当然可以。我只是意识到我的代码会影响所有的计划,所以按照你的建议去做会更好。请接受我的投票。