【发布时间】:2015-07-09 00:51:24
【问题描述】:
我有一个在两个地方使用的环境变量,一个在 rake 任务中,另一个在模型方法中。当我从 rake 任务中调用它时,一切都很好并且变量加载,但是当我从模型中调用它时,它什么也没找到。这不是零错误或任何其他错误,它只是返回一个空字符串。
环境变量是否会被模型覆盖或无法访问?
它被用来构建一个 url:
http://#{AppEnv['env_var_1']}/this/is/#{AppEnv['env_var_2']}/a/path
--还有一件事,myabe是相关的,模型方法叫after_create
编辑:
感谢您的回复,但我的问题不是如何访问或使用环境变量,正如您所见,我已经在上面使用它们了。我的问题是为什么它们没有加载到我的模型中。
编辑 2:
我有 4 个相关的 AppEnv 变量,当我在运行 rake 任务时检查它们(puts 全部 4 个到日志)时,[这真的很奇怪,请耐心等待],它们符合预期。当我运行完全相同的类方法,但在模型中调用 after_create 时,其中 3 个变量为空,其中一个包含不同变量的值。那就是:
AppEnvVar1 为空
AppEnvVar2 的值为 AppEnvVar4
AppEnvVar3 为空
AppEnvVar4 为空
如果我将方法更改为self.method(允许我从控制台运行它)并运行它,它就可以工作。所以我很确定在after 过滤器期间我已经将其缩小到AppEnv 的问题。
关于在哪里挖掘的任何想法?
【问题讨论】:
-
环境变量应该与
ENV在 rake 和 rails 模型中可用。
标签: ruby-on-rails model environment-variables rake