0

我正在尝试使用不同的条带键(信用卡支付处理系统),具体取决于我是在测试/开发还是生产/根据我在 StackOverflow 上看到的建议,我做了以下操作:

在我的 /config/initializers/stripe.rb 文件中,我有以下内容:

STRIPE_CONFIG = begin
  config = YAML.load(File.open(Rails.root.join('config', 'stripe.yml')))
  config = config[Rails.env] || {}
  config.to_options
end

在我的 /config/stripe.yml 文件中,我有以下内容:

default: &default
  Stripe.api_key:    "testapikeycode"
  STRIPE_PUBLIC_KEY: "testpublickeycode"

development:
  <<: *default

test:
  <<: *default

production:
  Stripe.api_key:    "productionapikeycode"
  STRIPE_PUBLIC_KEY: "productionpublickeycode"

但是,当我进入控制台(rails 控制台)时,我输入

puts STRIPE_PUBLIC_KEY

我收到以下错误消息:

NameError: uninitialized constant STRIPE_PUBLIC_KEY

有任何想法吗?

替代方法

仅使用 stripe.rb,并在其中包含以下内容:

if Rails.env == 'production'
  Stripe.api_key:    "productionapikeycode"
  STRIPE_PUBLIC_KEY: "productionpublickeycode"
else
  Stripe.api_key:    "tesapikeycode"
  STRIPE_PUBLIC_KEY: "testpublickeycode"     
end 
4

1 回答 1

2

STRIPE_PUBLIC_KEY 是您的 yaml 配置文件中的一个键,您实际上从未将其初始化为常量。如果你键入p STRIPE_CONFIG['STRIPE_PUBLIC_KEY'],你应该得到你想要的结果。

撇开我想YAML.load应该是YAML.load_file

于 2012-10-06T01:38:46.337 回答