ruby-on-rails - 我如何在Rails应用程序中看到ENV变量?

标签 ruby-on-rails environment-variables env

我要接管一个旧的Rails应用程序。一年没有人碰过它。最后一位开发人员于2015年4月离开,我无法联系他。我确实可以通过ssh访问服务器,并且可以访问Github存储库。

我不知道任何用户名/密码。

如果我SSH到服务器并且找到了database.yml文件,我会看到类似以下内容:

  staging:
        adapter: mysql2
        encoding: utf8
        pool: 5
        socket: /var/lib/mysql/mysql.sock
        database: o_wawa_stage
        username: wawa_stage
        password: <%= ENV['STAGE_DATABASE_PASSWORD'] %>
        host: access.dmedia.com


如果运行“ printenv”命令,则看不到这些变量。我假设它们仅由Rails环境加载。

我想我可以编辑模板以使用一堆“ put”语句吐出值,但是我认为除了在公众可以看到的地方打印数据之外,还必须有一种更明显的方法来执行此操作。

如果我尝试运行“ rails console”,则会得到:

  Rails Error: Unable to access log file. Please ensure that /var/www/haha/production/releases/20150118213616/log/development.log exists and is writable (ie, make it writable for user and group: chmod 0664 /var/www/haha/production/releases/20150118213616/log/development.log). The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.


我在此框上没有sudo,因此无法解决该错误。

最佳答案

如您的示例所指出的,假设暂存环境。您需要通过将RAILS_ENV环境变量添加到rails console命令来加载控制台。

RAILS_ENV=staging rails console


那应该使您进入。一旦进入,就可以直接访问ENV变量。

2.2.2 (main):0 > ENV


这将为您转储环境变量。请注意,您的提示可能看起来有所不同。如果要访问特定值,例如数据库密码,则可以:

2.2.2 (main):0 > ENV['STAGE_DATABASE_PASSWORD']

关于ruby-on-rails - 我如何在Rails应用程序中看到ENV变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35704957/

相关文章:

ruby-on-rails - 将 Ruby 哈希键加入字符串

bash - 使用 bash 从 ubuntu 上的文件中读取具有未转义字符的 env 变量

intellij-idea - 为 Intellij 设置的 JBOSS_HOME 变量在哪里

powershell - 使用路径中的环境变量运行 EXE 文件(PowerShell)

javascript - 在 node.js 中将数组定义为环境变量

linux - 为什么 env -i 与命令手册不匹配

javascript - Rails 根据下拉选择将参数附加到 URL

ruby-on-rails - 在rails中,如何将记录作为csv文件返回

ruby-on-rails - 为什么Capistrano不使用 bundle 软件安装gem?

node.js - Gulp 环境和预处理