2012-10-06 126 views
0

我試圖根據我在測試/開發或生產中使用不同的條帶鍵(信用卡支付處理系統)/根據我在StackOverflow上看到的建議,我做了以下:Rails:常量不初始化

在我/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" 

然而,當我去到控制檯(軌控制檯),以及I型

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 

回答

2

STRIPE_PUBLIC_KEY是在你的YAML配置文件中的一個關鍵,你從來沒有真正初始化爲常數。如果您輸入p STRIPE_CONFIG['STRIPE_PUBLIC_KEY'],您應該得到您想要的結果。

除此之外,我認爲YAML.load應該是YAML.load_file

+0

YAML.load的作品。我最終沒有使用這個,看到我原來的問題的意見 – EastsideDeveloper