Как настроить «dotenv gem» в приложении rails 7

Как настроить «dotenv gem» в приложении rails 7 для заданной переменной окружения.

это ответ? также работает назначение переменной .env, но показанный пример имеет формат ключ = значение

Haumer 26.11.2022 11:16

Это то, что сработало для меня @Haumer. Вы можете указать свое решение в комментарии, если вам нужно что-то изменить, спасибо.

Pooja Mokariya 26.11.2022 16:07

Я просто был сбит с толку, потому что вы изначально не задавали вопрос, а просто ответили?

Haumer 26.11.2022 16:20
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
3
756
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Добавьте строку ниже в 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).

Dan Brown 20.03.2023 19:25

Большая часть того, что говорит Пуджа, фактически неверна. Файл .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

Другие вопросы по теме