Как настроить «dotenv gem» в приложении rails 7 для заданной переменной окружения.
Это то, что сработало для меня @Haumer. Вы можете указать свое решение в комментарии, если вам нужно что-то изменить, спасибо.
Я просто был сбит с толку, потому что вы изначально не задавали вопрос, а просто ответили?
Добавьте строку ниже в Gemfile
gem 'dotenv-rails', require: 'dotenv/rails-now', groups: [:development]
Беги bundle install
Добавьте приведенный ниже код чуть ниже этой строки Bundler.require(*Rails.groups)
в файл application.rb.
# Load dotenv only in development or test environment
if ['development', 'test'].include? ENV['RAILS_ENV']
Dotenv::Railtie.load
end
Создайте один файл в папке приложения с именем .env
Добавьте свои учетные данные в этот .env
файл, как показано ниже.
DB_USERNAME: username
DB_PASSWORD: password
Используйте эту переменную env в соответствующем месте, как показано ниже.
в database.yml
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
host: localhost
username: <%= ENV['DB_USERNAME'] %>
password: <%= ENV['DB_PASSWORD'] %>
Теперь ваша настройка переменной ENV завершена. вы можете проверить это из консоли rails, как показано ниже.
rails c
> ENV["DB_USERNAME"]
> username
>ENV["DB_PASSWORD"]
> password
Это не сработает, к вашему сведению. Вы втягиваете это в группу development
только через свой фрагмент Gemfile
. Если люди хотят скопировать и вставить это, убедитесь, что вы включили его во все среды, которые хотите (например, в вашем файле application.rb
вы ссылаетесь на среду test
, которая, несомненно, имеет свою собственную группу в Gemfile
).
Большая часть того, что говорит Пуджа, фактически неверна. Файл .env находится в корневом каталоге вашего приложения, а не в папке приложения. Синтаксис переменных env в .env разделен знаком "=", а не ":". Например, .env будет выглядеть так, как это делается в приложениях Node:
MYSQL_USERNAME=user
MYSQL_PASSWORD=password
MYSQL_HOST=host
В приведенном выше фрагменте она включает только блок разработки в Gemfile, но выполняет проверку как разработки, так и тестирования в application.rb при загрузке dotenv. В этом случае Gemfile должен выглядеть так и желательно добавлять гем вверху:
gem 'dotenv-rails', groups: [:development, :test]
На самом деле все, что я говорю, в основном взято с домашней страницы Gem: https://github.com/bkeepers/dotenv
это ответ? также работает назначение переменной .env, но показанный пример имеет формат ключ = значение