2012-10-06 2 views
0

테스트/개발 중이거나 생산 중임에 따라 다른 스트라이프 키 (신용 카드 지불 처리 시스템)를 사용하려고합니다. StackOverflow에서 본 제안에 따라 다음 : 내 /config/initalizers/stripe.rb 파일에서레일 : 상수가 초기화되지 않음

을, 나는 다음과 같습니다

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

development: 
    <<: *default 

test: 
    <<: *default 

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

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 파일에, 나는 다음이

그러나, 나는 콘솔 (레일 콘솔)에 가서, 내가

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.loadYAML.load_file이어야합니다.

+0

YAML.load가 작동합니다. 나는 이것을 사용하지 않고, 원래의 질문에 대한 의견을 보았다. – EastsideDeveloper

관련 문제