Ruby on rails 在每次不重新创建用户的情况下创建条带事务

Ruby on rails 在每次不重新创建用户的情况下创建条带事务,ruby-on-rails,ruby,stripe-payments,Ruby On Rails,Ruby,Stripe Payments,我一直在开发Rails购物车应用程序,并注意到Stripe API中的示例代码在每次我下(测试)订单时都会创建一个新客户 这显然是不可取的,作为一名Ruby/Rails新手,我一直在仔细阅读我能找到的所有教程,以找出如何在创建之前让它检查客户是否存在。这样做的标准方法似乎是检查stripe_customer_令牌,并根据是否存在令牌继续操作。但无论我如何处理,我都会为customer_token获得一个命名错误 这是我当前的charges_controller.rb: class Charges

我一直在开发Rails购物车应用程序,并注意到Stripe API中的示例代码在每次我下(测试)订单时都会创建一个新客户

这显然是不可取的,作为一名Ruby/Rails新手,我一直在仔细阅读我能找到的所有教程,以找出如何在创建之前让它检查客户是否存在。这样做的标准方法似乎是检查stripe_customer_令牌,并根据是否存在令牌继续操作。但无论我如何处理,我都会为customer_token获得一个命名错误

这是我当前的charges_controller.rb:

class ChargesController < ApplicationController
  def new
  end

  def create
    if self.customer_token.present?
    @customer = Stripe::Customer.retrieve(current_user.stripe_customer_token)
    else
    @customer = Stripe::Customer.create(
      :email => self.manager.email, card => stripe_token
    )
      charge = Stripe::Charge.create(
        :amount => (params[:amount].to_f * 100).abs.to_i,
        currency => "usd",
        card => params[:stripeToken],
        description => params[:email]
      )
      @amount = params[:amount]
      @payment_id = charge.id
    end
  end
end 
(行号如此之高是因为上面有相当多的注释掉的代码,我尝试过不同的东西)

(对我的新手来说)奇怪的是,它在stripe\u customer\u令牌上拉屎,但如果我将stripe\u customer\u令牌更改为customer\u令牌,它在它前面的行上拉屎——在self.customer\u令牌上。当然,如果这是一个问题,它应该在那里拉屎,无论什么在第49行


更重要的是,有人能解释一下我在这里做错了什么,或者我在这个网站上错过了什么解决方案吗?谢谢

我认为问题在于您向控制器而不是当前用户请求
customer\u令牌。
stripe\u customer\u token
是否存储在用户上?在你去接客户之前,你想检查一下是否有?如果是的话

更改:

if self.customer_token.present?
致:

if self.customer_token.present?
@customer = Stripe::Customer.retrieve(current_user.stripe_customer_token)
if self.customer_token.present?
if current_user.stripe_customer_token.present?