cmw*_*cmw 0 ruby-on-rails ruby-on-rails-3 stripe-payments
我在使用Stripe,Rails(3.2.8)和Ruby(1.9.2)时遇到了一个未初始化的常量.
最初,我的销售模型使用以下(这有效!):
def charge_card
begin
save!
charge = Stripe::Charge.create(
amount: self.amount,
currency: "usd",
card: self.stripe_token,
description: self.email,
)
self.finish!
rescue Stripe::Error => e
self.update_attributes(error: e.message)
self.fail!
end
end
Run Code Online (Sandbox Code Playgroud)
然后,我决定使用Stripe的一些附加信息更新该记录,因此我将其更改为以下内容:
def charge_card
begin
save!
charge = Stripe::Charge.create(
amount: self.amount,
currency: "usd",
card: self.stripe_token,
description: self.email,
)
self.update(
stripe_id: charge.id,
card_expiration: Date.new(charge.card.exp_year, Charge.card.exp_month, 1),
fee_amount: charge.fee
)
self.finish!
rescue Stripe::Error => e
self.update_attributes(error: e.message)
self.fail!
end
end
Run Code Online (Sandbox Code Playgroud)
这导致以下结果: uninitialized constant Stripe::Error
我很想得到一些关于如何正确更新记录的帮助/指导.
谢谢!
首先在gemfile中添加条带
gem 'stripe'
Run Code Online (Sandbox Code Playgroud)
然后做一个 bundle install
然后创建一个文件config/initializers/stripe.rb并输入以下代码
require "stripe"
Run Code Online (Sandbox Code Playgroud)
现在重启你的服务器.
小智 5
该Stripe模块不实现Error类,仅实现StripeError类。请参阅stripe-ruby 文档
如果您将代码更改为
def charge_card
begin
...
charge = Stripe::Charge.create()
rescue Stripe::StripeError => e
self.update_attributes(error: e.message)
self.fail!
end
end
Run Code Online (Sandbox Code Playgroud)
它应该有效。
| 归档时间: |
|
| 查看次数: |
2013 次 |
| 最近记录: |