2016-07-23 4 views
2

私はちょうどpayolaの宝石を見て問題が発生し始めました。この宝石はpayola_subscriptionと呼ばれるテーブルを作成します。これはサブスクリプションの作成、キャンセルなどを記録するはずです。新しいサブスクリプションを作成すると、それはこのテーブルに記録されますが、サブスクリプションをキャンセルすると、このテーブルは更新されません。私の質問です:cancel subscriptionのようなアクションが実行された場合、または、cancelメソッドでこれらを手動で実装する必要がある場合、payola gemはこのテーブルのレコードを更新するはずですか?奇妙なこと(私にとって)card_updateメソッドで使用されるPayola::UpdateCard.callは、新しいクレジットカード番号でデータベースを更新しますが、Payola::CancelSubscription.callはテーブルを更新しません。以下は、サブスクリプションをキャンセルするためのコントローラコードです。何を見落としているのか、間違っているのですか?Payola_subscriptionテーブルを更新するPayola gem with stripe

# subscriptions_controller.rb 
class SubscriptionsController < ApplicationController 
    include Payola::StatusBehavior 

    def create 
    owner = current_user # this is just an example for Devise 
    # set your plan in the params hash 
    params[:plan] = SubscriptionPlan.find_by(id: params[:plan_id]) 
    # call Payola::CreateSubscription 
    subscription = Payola::CreateSubscription.call(params, owner) 
    current_user.subscription_plan_id=params[:plan_id] 
    current_user.save 
    flash.notice = "Subscription successfully created" 
    UserMailer.subscribe_email(current_user).deliver_now 
    render_payola_status(subscription) 
    end 

    def cancel 
    if params[:guid].present? 
     @subscription = Payola::Subscription.find_by(:guid => params[:guid]) 
     Payola::CancelSubscription.call(@subscription) if [email protected]? 
     current_user.subscription_plan_id=nil 
     current_user.save 
     UserMailer.unsubscribe_email(current_user).deliver_now 
     flash.notice = "Subscription successfully cancelled" 
     redirect_to dashboard_path 
    end 
    end 

    def card_update 
     @subscription = Payola::Subscription.find_by!(guid: params[:guid]) 
     Payola::UpdateCard.call(@subscription, params[:stripeToken]) 
     flash.notice = "Your credit card successfully updated!" 
     render_payola_status(@subscription) 
    end 

end 

答えて

関連する問題