请在用户付款后,我正在尝试为我的费用控制器中的特定票证创建优惠券,但我一直收到此错误;在/charges未定义方法‘NoMethodError’的nil:NilClass。有什么帮助吗?下面是我的代码;
票证模型
class Ticket < ApplicationRecord
belongs_to :event
has_many :order_items, dependent: :destroy
has_many :coupons, dependent: :destroy
before_save :set_ticket_sku
def ticket_sku
self.sku = SecureRandom.hex
end
private
def set_ticket_sku
self[:sku] = ticket_sku
end
end优惠券模型
class Coupon < ApplicationRecord
belongs_to :ticket
before_save :set_code
def generate_code
self.code = SecureRandom.hex
end
private
def set_code
self[:code] = generate_code
end
end费用控制器
class ChargesController < ApplicationController
skip_after_action :verify_authorized
before_action :authenticate_user!
def new
end
def create
@order = current_order
@order_items = @order.order_items.last
@amount = @order.subtotal_in_cents
@ticket = Ticket.find_by(sku: params[:sku])
@quantity = @order_items.quantity
customer = Stripe::Customer.create({
email: params['stripeEmail'],
source: params['stripeToken']
})
charge = Stripe::Charge.create({
customer: customer.id,
amount: @amount,
description: "Event Payment",
currency: 'usd'
})
@quantity.times do
@ticket.coupons.create!
end
redirect_to root_path
rescue Stripe::CardError => e
flash[:error] = e.message
redirect_to new_charge_path
end结束
发布于 2020-07-04 23:42:43
在充电控制器参数中:sku为零
https://stackoverflow.com/questions/62729627
复制相似问题