【问题标题】:How do I view my environment variables?如何查看我的环境变量?
【发布时间】:2014-09-01 08:30:03
【问题描述】:

我正在尝试连接到我的推送服务器,但收到错误消息:

缺少客户端配置:请检查 key、secret 和 app_id 是否已配置。

我想检查我的环境变量,但在 Stack Overflow 上找不到任何明确的方法。

【问题讨论】:

    标签: ruby-on-rails bash terminal environment-variables


    【解决方案1】:

    这两个命令都将打印到标准输出您的环境变量:

    env

    printenv

    【讨论】:

      【解决方案2】:

      我还在视图层中使用了以下内容:

      <% request.env.each do |key, value| %>
        <strong><%= key %></strong> => <%= value %><br/>
      <% end %>
      

      我发现调试在乘客/nginx级别设置的环境变量引起的问题非常有帮助,当我使用rails控制台时不会显示。

      【讨论】:

        【解决方案3】:

        从 Shell 打印环境

        正如其他答案所指出的那样,可以在命令行中使用/usr/bin/env/usr/bin/printenv 在启动Rails 之前查看shell 中的环境,或者在启动Rails 之后查看子shell 中的环境。例如:

        1. rails s 返回
        2. CTRL-Z
        3. env 返回
        4. fg 返回

        从视图层显示 ENV

        在 Ruby 中,ENV 是环境变量的“类似哈希”的访问器;它实际上是 not 哈希。您可以通过键入ENVENV['foo'] 轻松地从Rails 控制台内省ENV,但有时您可能想查看Rails 在渲染期间认为环境是什么。在这种情况下,您需要Rails debug helper。例如:

        # ERB
        <%= debug ENV.to_h.to_yaml %>
        
        # HAML
        = debug ENV.to_h.to_yaml
        

        调用 #to_yaml 来序列化 ENV 对象将使输出更易于阅读,但需要您先将 ENV 转换为哈希或数组。您也可以只调用debug ENV 而无需链接;只是眼睛更难受。

        【讨论】:

        • 谢谢!但是,我注意到我在 .env.local 中设置的变量似乎没有出现在这里......有什么想法吗?
        【解决方案4】:

        或者使用O/S shell,在Ubuntu中使用

        printenv
        

        【讨论】:

          【解决方案5】:

          在 Rails 控制台中使用命令ENV。这将返回您可以访问的环境值的哈希值。或者,您可以使用相同的命令从您的应用根路径访问您的环境变量,并且这些变量将被格式化。

          【讨论】:

          • ENV 并不是真正的哈希。 ENV.class == Object,并且许多 Hash 方法将无法在 ENV 上运行,除非您先在其上调用 #to_h。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-08-08
          • 2012-07-07
          • 2022-11-18
          • 2019-07-06
          • 2013-09-07
          • 1970-01-01
          • 2019-11-22
          相关资源
          最近更新 更多