条带集成 – 将attr值动态添加到hidden_​​field中

我正在努力将Stripe与我的Rails项目集成,并使其工作到新用户注册时它们被添加为Stripe中的客户。 但是,我在向他们发送plan_id时遇到了一些问题。

注册表单的URL包含plan_id作为参数,具体取决于从定价表中选择的计划,例如:

http://localhost:3000/users/sign_up?plan_id=1 

注册表单包含以下隐藏字段,该字段应将plan_id传递给Stripe:

  

以下代码位于user.rb模型中,用于创建新的Stripe客户:

 after_create :save_with_payment def save_with_payment if valid? customer = Stripe::Customer.create(description: email, plan: plan_id, card: stripe_card_token) self.stripe_customer_token = customer.id save! end end 

以下代码位于用户控制器中:

 def create @user = User.new(params[:user]) if @user.save_with_payment redirect_to @user, :notice => "Thank you for subscribing!" else render :new end end 

当我提交注册表单时,将创建新用户并在Stripe中查看。 问题是plan_id值没有传递给Stripe,因此客户没有与计划相关联。 此外,plan_id的值不会保存在数据库中的该用户下。

当我早些提出这个问题时,我被告知解决方案是动态地将一个attr值添加到hidden_​​field中。 我不确定如何做到这一点,但我希望修改validation表单的cc信息的coffeescript:

 $(document).on 'ready page:load', -> user.setupForm() Stripe.setPublishableKey($('meta[name="stripe-key"]').attr('content')) return user = setupForm: -> $('form#new_user').on "submit", (event) -> $('input[type=submit]').attr('disabled', true) user.processCard() event.preventDefault() processCard: -> card = number: $('#card_number').val() cvc: $('#card_code').val() expMonth: $('#date_month').val() expYear: $('#date_year').val() Stripe.createToken(card, user.handleStripeResponse) handleStripeResponse: (status, response) -> if status == 200 $('#user_stripe_card_token').val(response.id) $('#new_user')[0].submit() else $('#stripe_error').text(response.error.message) $('input[type=submit]').attr('disabled', false)