Ruby on rails 成功充电后,RoR无法检索条带charge.id
我成功地用条纹宝石和(大部分)样板条纹代码(如下)向一张卡收费。成功充电后,我尝试检索充电ID,以便将其插入表单并保存以备以后使用,但遇到错误:Ruby on rails 成功充电后,RoR无法检索条带charge.id,ruby-on-rails,ruby,stripe-payments,Ruby On Rails,Ruby,Stripe Payments,我成功地用条纹宝石和(大部分)样板条纹代码(如下)向一张卡收费。成功充电后,我尝试检索充电ID,以便将其插入表单并保存以备以后使用,但遇到错误: ActionView::Template::Error (undefined method `id' for #<Charge:0x000001065ab458>): ActionView::Template::Error(未定义#的方法'id'): 这似乎很奇怪。在检查从我的控制器(表面上是条带宝石)返回的费用对象时,似乎没有“id”
ActionView::Template::Error (undefined method `id' for #<Charge:0x000001065ab458>):
ActionView::Template::Error(未定义#的方法'id'):
这似乎很奇怪。在检查从我的控制器(表面上是条带宝石)返回的费用对象时,似乎没有“id”,只有令牌、金额和空错误数组
有什么想法吗
控制器代码
class ChargesController < ApplicationController
respond_to :js
def create
@charge = Charge.create(charge_params)
respond_with(@charge)
end
private
def charge_params
params.require(:charge).permit(:stripeToken, :id)
end
end
class ChargesController
===============================
模型代码
require 'active_model'
class Charge
include ActiveModel::Model
include CurrentCart
class << self
def create(params)
new(params).tap(&:save)
end
end
attr_reader :amount, :token, :id, :line_items_list
def initialize(params)
@amount = params[:amount].to_i
@token = params[:stripeToken]
Stripe.api_key = "sk_test_srlCaebNKtVDT7OPZIIb5jxV"
end
def save
begin
stripe_charge = Stripe::Charge.create(
:amount => amount,
:currency => "usd",
:card => token,
:description => 'Ties for all!'
)
rescue Stripe::CardError => e
errors.add(:base, e.message)
rescue => e
errors.add(:base, "An error occurred with the payment processing: #{e.inspect}")
end
errors.empty?
end
需要“活动的\u模型”
班费
包括ActiveModel::Model
包括当前购物车
班级人数,
:货币=>“美元”,
:card=>token,
:description=>“所有人的领带!”
)
救援条带::CardError=>e
错误。添加(:base,e.message)
救援=>e
添加(:base,“支付处理发生错误:#{e.inspect}”)
结束
是空的吗?
结束
==========您的收费服务对象未返回条带收费对象
def id
@stripe_charge.id
end
实际上,创建条带费用的方法只返回布尔值errors.empty?
您正在检查的charge对象只是您自己charge类的一个实例
另一种方法是在实例变量中保存条带费用
@stripe_charge = Stripe::Charge.create(
然后编写一个访问器,从您自己的Charge对象中检索它
def id
@stripe_charge.id
end
就像一个完美的,完美的魅力。简单干净。谢谢你的帮助。但愿我有足够的影响力去投票!你是自由职业者吗?我?我是一个自由职业者承包商。。。作为一名开发人员,同时也是RoR培训师。