【发布时间】:2014-09-01 08:30:03
【问题描述】:
我正在尝试连接到我的推送服务器,但收到错误消息:
缺少客户端配置:请检查 key、secret 和 app_id 是否已配置。
我想检查我的环境变量,但在 Stack Overflow 上找不到任何明确的方法。
【问题讨论】:
标签: ruby-on-rails bash terminal environment-variables
我正在尝试连接到我的推送服务器,但收到错误消息:
缺少客户端配置:请检查 key、secret 和 app_id 是否已配置。
我想检查我的环境变量,但在 Stack Overflow 上找不到任何明确的方法。
【问题讨论】:
标签: ruby-on-rails bash terminal environment-variables
env
printenv
【讨论】:
我还在视图层中使用了以下内容:
<% request.env.each do |key, value| %>
<strong><%= key %></strong> => <%= value %><br/>
<% end %>
我发现调试在乘客/nginx级别设置的环境变量引起的问题非常有帮助,当我使用rails控制台时不会显示。
【讨论】:
正如其他答案所指出的那样,可以在命令行中使用/usr/bin/env 或/usr/bin/printenv 在启动Rails 之前查看shell 中的环境,或者在启动Rails 之后查看子shell 中的环境。例如:
rails s 返回 env 返回 fg 返回
在 Ruby 中,ENV 是环境变量的“类似哈希”的访问器;它实际上是 not 哈希。您可以通过键入ENV 或ENV['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 而无需链接;只是眼睛更难受。
【讨论】:
或者使用O/S shell,在Ubuntu中使用
printenv
【讨论】:
在 Rails 控制台中使用命令ENV。这将返回您可以访问的环境值的哈希值。或者,您可以使用相同的命令从您的应用根路径访问您的环境变量,并且这些变量将被格式化。
【讨论】:
ENV.class == Object,并且许多 Hash 方法将无法在 ENV 上运行,除非您先在其上调用 #to_h。