我剛開始看payola寶石,並有問題。創建一個名爲payola_subscription
的表,該表應該記錄訂閱創建,取消等。到目前爲止,當我創建一個新的訂閱時,它被記錄在這張表中,但是當我取消一個訂閱時,這張表不會被更新。我的問題是:如果執行諸如cancel subscription
之類的操作,或者我必須在我的cancel
方法中手動執行這些操作,Payola寶石是否應該更新此表上的記錄?奇怪的事情(對我來說)Payola::UpdateCard.call
card_update
方法中使用新的信用卡號碼更新數據庫,但Payola::CancelSubscription.call
不會更新表。以下是取消訂閱的控制器代碼。我忽視或做錯了什麼?Payola寶石條紋 - 更新payola_subscription表
# 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