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

如何在Rails的Slim框架中将.env文件变量引入JavaScript标签

在Rails的Slim模板JavaScript中访问.env环境变量的解决方案

问题根源

  1. .env文件格式错误:dotenv工具使用=而非:定义环境变量,导致变量未被正确加载
  2. 模板变量处理不当:将环境变量用引号包裹为字符串,若变量未加载成功,空字符串与数字相乘结果为0
  3. 缺少必要依赖:Rails默认不会自动加载.env文件,需依赖dotenv-rails gem实现该功能

解决步骤

1. 安装并配置dotenv-rails

在项目的Gemfile中添加依赖:

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

执行命令安装:

bundle install

2. 修正.env文件格式

将原有的冒号替换为等号,确保变量能被正确解析:

NUMBER_TO_MULTIPLY=2

3. 调整Slim模板中的JavaScript代码

确保环境变量被解析为数值类型,避免字符串干扰计算:

javascript:
  $(document).ready(function() {
    var count = selectedRows.length; // 取值为3
    var multiplier = #{ENV['NUMBER_TO_MULTIPLY'].to_i};
    var totalCount = count * multiplier;
    alert(totalCount); // 预期输出6
  });

4. 重启Rails服务器

dotenv在服务器启动时加载.env文件,修改配置后必须重启服务器才能生效。

额外注意事项

  • Rails.env仅返回当前Rails运行环境(如development/production),并非获取自定义环境变量的方式,自定义变量需通过ENV['变量名']访问
  • 生产环境建议使用服务器自带的环境变量配置(如云平台的config vars),避免将敏感信息存入.env文件;若需在生产环境使用dotenv,需调整gem的groups或设置ENV['DOTENV']=true

内容的提问来源于stack exchange,提问作者Naresh Kumar P

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 10:47:27