首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在创建优惠券实例时,/charges处的NoMethodError未定义nil:NilClass的方法‘coupon’

在创建优惠券实例时,/charges处的NoMethodError未定义nil:NilClass的方法‘coupon’
EN

Stack Overflow用户
提问于 2020-07-04 21:17:41
回答 1查看 39关注 0票数 0

请在用户付款后,我正在尝试为我的费用控制器中的特定票证创建优惠券,但我一直收到此错误;在/charges未定义方法‘NoMethodError’的nil:NilClass。有什么帮助吗?下面是我的代码;

票证模型

代码语言:javascript
复制
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

优惠券模型

代码语言:javascript
复制
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

费用控制器

代码语言:javascript
复制
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

结束

EN

回答 1

Stack Overflow用户

发布于 2020-07-04 23:42:43

在充电控制器参数中:sku为零

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62729627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档