Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 它能够回滚条带更新吗_Ruby On Rails_Ruby_Stripe Payments - Fatal编程技术网

Ruby on rails 它能够回滚条带更新吗

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(

我被要求增加条纹中所有计划的数量。因此,我用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(
        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谢谢,我正在使用该解决方案,但我仍在寻找更好的方法自动完成。我明白你的意思。如果出了问题,我们还得手动修复。谢谢,当然可以。我只是意识到我的代码会影响所有的计划,所以按照你的建议去做会更好。听我的,我明白你的意思。如果出了问题,我们还得手动修复。谢谢,当然可以。我只是意识到我的代码会影响所有的计划,所以按照你的建议去做会更好。请接受我的投票。