0

テスト/開発中か本番中かによって、異なるストライプ キー (クレジット カード支払い処理システム) を使用しようとしています。StackOverflow で見た提案に基づいて、次のことを行いました。

私の /config/inititalizers/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

何か案は?

別の方法

strip.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 に答える