Я пытаюсь передать переменную ENV моего публикуемого ключа полосы в файл stripe.js для Connect.
Dotenv gem:
gem 'dotenv-rails', groups: [:development, :test, :production]
Iдобавил его в мой файл .env для gem dotenv:
STRIPE_PUBLISHABLE_KEY=pk_test_xxxxxxxxxx
STRIPE_SECRET_KEY=sk_test_xxxxxxxxxx
Затем добавил в мой файл stripe.js.erb:
var stripe = Stripe("<%= ENV['STRIPE_PUBLISHABLE_KEY']%>");
, изменив stripe.js на stripe.js.erbработал локально, но ENV, кажется, не работает в производстве.В переменных Heroku, я его установил.И если я передам ключ прямо в stripe.js / .js / erb, он будет работать, поэтому, так или иначе, ENV не будет работать во время производства.
Даже если я перенесу код впросмотра с тегами, он не будет работать, если я не передам ключ непосредственно.
Я не получаю ошибок на стороне herokus.
Я также пытался использовать учетные данные:
stripe:
stripe_publishable_key: pk_test_x
stripe_secret_key: sk_test_x
С этим в моем файле stripe.js / .js.erb:
var stripe = Stripe('<%= Rails.application.credentials.dig(:stripe, :stripe_publishable_key) %>');
(я использую этот точный формат для активного хранения и работает и попробовал:
var stripe = Stripe('<%= Rails.application.credentials.stripe[:stripe_publishable_key] %>');
С этим я получаю следующую ошибку, нажимая на heroku:
NoMethodError: неопределенный метод `[] 'для nil: NilClass
Вопросы: Как я могу передать переменные ENV в производство?
Этот вопрос был решен с помощью .erb, но теперь проблема в том, что файл ENV не достигает производства.