我正在尝试使用不同的条带键(信用卡支付处理系统),具体取决于我是在测试/开发还是生产/根据我在StackOverflow上看到的建议,我做了以下内容:
在我的/config/initalizers/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
答案 0 :(得分:2)
STRIPE_PUBLIC_KEY是yaml配置文件中的一个键,您实际上从未将其初始化为常量。如果您输入p STRIPE_CONFIG['STRIPE_PUBLIC_KEY']
,则应获得所需的结果。
除此之外,我认为YAML.load
应为YAML.load_file
。