You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Rails 7应用中配置dotenv gem以设置环境变量

在Rails 7中配置dotenv gem并设置环境变量

1. 安装dotenv-rails gem

打开项目根目录的Gemfile,添加gem依赖(通常仅在开发、测试环境使用):

gem 'dotenv-rails', groups: [:development, :test]

执行安装命令:

bundle install

2. 创建环境变量配置文件

在项目根目录创建.env文件,用于存储本地环境变量:

touch .env

重要提醒:.env包含API密钥、数据库密码等敏感信息,务必确认它在.gitignore中(Rails 7默认已添加),禁止提交到版本控制。

如果需要为不同环境配置专属变量,可创建对应文件,比如.env.development(仅开发环境加载)、.env.test(仅测试环境加载),dotenv会自动根据当前Rails环境加载匹配的文件。

3. 添加环境变量

在.env(或对应环境文件)中按KEY=VALUE格式定义变量,示例:

DATABASE_URL=postgres://myuser:mypassword@localhost:5432/myapp_dev
STRIPE_API_KEY=sk_test_abc123456789
SECRET_KEY_BASE=your-long-secret-key-here
  • 变量值无需加引号(除非值包含空格或特殊字符)
  • 等号两侧不要添加空格

4. 在Rails中使用环境变量

在应用代码或配置文件中,通过ENV['变量名']直接调用即可:

  • 示例1:在config/database.yml中配置数据库连接
development:
  url: <%= ENV['DATABASE_URL'] %>
  • 示例2:在控制器中调用API密钥
class PaymentsController < ApplicationController
  def create
    stripe = Stripe::Charge.create(
      amount: 1000,
      currency: 'usd',
      source: params[:stripe_token],
      api_key: ENV['STRIPE_API_KEY']
    )
  end
end

关键注意事项

  • 环境变量优先级:系统级环境变量会覆盖dotenv加载的变量,避免本地变量干扰生产环境配置。
  • 生产环境建议:生产环境优先使用部署平台提供的环境变量管理功能(如Heroku Config Vars、AWS Secrets Manager),无需依赖dotenv。若必须在生产环境使用dotenv,需确保.env.production文件安全存储,绝不提交到版本控制。
  • 控制台/rake任务:dotenv-rails会自动在Rails控制台和rake任务启动时加载变量,无需额外配置。

内容的提问来源于stack exchange,提问作者Pooja M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 22:30:58