【问题标题】:Debug - Rails multiple orders created from one item调试 - Rails 从一个项目创建的多个订单
【发布时间】:2025-11-25 10:40:01
【问题描述】:

我在我的生产应用程序中遇到了一个错误,我最好的猜测是两个不同的用户正在点击网站上的同一个项目,并且都继续创建订单。当他们到达订单页面并提交表单时,它会将他们带到 PayPal。用户都付款并且订单显示在数据库中,但只有一件商品的库存被标记为已售出。基本上,仅从一个项目创建多个订单和付款。

有人知道从哪里着手解决这个问题吗?谢谢

【问题讨论】:

  • 您检查两个用户是否不同?如果是同一个用户,那么当您点击提交时,它可能是从 UI 发送的两个请求。

标签: ruby-on-rails ruby postgresql paypal paypal-ipn


【解决方案1】:
  • 同一商品的订单不能超过 1 个吗?
  • 相反,您可以在重定向到 PayPal 之前检查库存,一旦用户返回您的应用,您可以在下订单之前再次检查库存。
  • 在检查库存时,还要考虑其他用户购物车中的商品。

【讨论】:

    【解决方案2】:

    我发现了问题所在。我的商品模型有订单的 has_many 关联而不是 has_one,并且允许创建多个订单。

    【讨论】:

      最近更新 更多