Ruby 订阅的条带更新生成错误

Ruby 订阅的条带更新生成错误,ruby,stripe-payments,Ruby,Stripe Payments,我使用的是gem stripe v4.0.3。如果检索到订阅,则可以使用以下方法取消订阅: subscription.cancel_at_period_end = true subscription.save 根据,我也应该能够使用命令执行此操作: subscription.update(cancel_at_period_end: true) 但这会产生一个错误: Failure/Error: subscription.update(cancel_at_period_end: true)

我使用的是gem stripe v4.0.3。如果检索到订阅,则可以使用以下方法取消订阅:

subscription.cancel_at_period_end = true
subscription.save
根据,我也应该能够使用命令执行此操作:

subscription.update(cancel_at_period_end: true)
但这会产生一个错误:

Failure/Error: subscription.update(cancel_at_period_end: true)

     NoMethodError:
       undefined method `update' for #<Stripe::Subscription:0x00007fcda95efd20>
失败/错误:订阅。更新(在时段结束时取消:真)
命名错误:
未定义的方法“更新”#

这是为什么?

订阅对象没有更新方法。
如果要在期间结束时取消订阅,则需要调用subscription services cancel方法。您需要传递该客户和订阅id,然后使用cancelAtPeriodEnd标志(将其设置为true)。

条带支持确认文档示例中存在错误。他们还说有两种方法可以做到这一点

sub = Stripe::Subscription.retrieve("sub_xxxyyyzz")
sub.cancel_at_period_end = true
sub.save

Or

Stripe::Subscription.update("sub_xxxyyzz",{:cancel_at_period_end => true})

我看不出这种方法。检索订阅,设置属性并保存它。正如您所说的,如果您想在当前计费周期结束时取消订阅,我们必须使用“在周期结束时取消”标志更新为true。subscription=Stripe::subscription.retrieve('sub_49ty4767H20z6a')subscription.update(在\u period\u end:true时取消)Stripe gem中可能存在问题。这似乎是文档的问题,而不是gem的问题<代码>条带::Subscription.update(在时段结束时取消:true)是根据`的首选方法。这还节省了检索您只打算取消的订阅的API往返。