条带 - 不更新数据库中的用户信息

时间:2015-09-05 00:55:07

标签: ruby-on-rails ruby-on-rails-4 controller stripe-payments

我正在使用条纹处理我的第一个项目。我有一个订阅产品,我有基本的条带功能工作,但我需要更新我的用户在数据库中的记录为“订阅”,以便我可以在开发后使用它作为验证。我在网上看到了几个教程,这些教程在你的模型中添加一个名为subscribed的列,或者沿着这些行添加一些列,并在条带化客户创建过程中更新它。我有这个工作,除了它没有更新我的用户模型(在这种情况下,供应商)。这是我的条带处理控制器:

    class ChargesController < ApplicationController
    before_filter :authenticate_supplier!

    def new
    end

    def create
      # Amount in cents
      token = params[:stripeToken]

      customer = Stripe::Customer.create(
          :source => token, # obtained from Stripe.js
          :plan => "Free_month_annual",
          :email => current_supplier.email,
          #:coupon => "coupon_ID"
        )

      current_supplier.subscribed = true
      #current_supplier.stripe_id = token

      redirect_to orders_path

    rescue Stripe::CardError => e
      flash[:error] = e.message
      redirect_to charges_path
    end

end

正如您所看到的,有两件事情已被注释掉 - 优惠券,我打算稍后再处理,stripe_id更新,因为我因为已经使用了token而遇到了错误(不能两次使用)。我更新了我的供应商模型,数据库中有一个适当的列,params已更新为允许supplier.subscribed。我相信这对许多人来说都是一个快速的答案,但我需要帮助发现我的问题。

修改 subscribed是一个布尔字段 - fyi

1 个答案:

答案 0 :(得分:1)

您似乎忘了保存current_supplier记录。

解决方案应该是添加如下内容:

current_supplier.subscribed = true
#current_supplier.stripe_id = token

current_supplier.save!

redirect_to orders_path