我正在尝试连接到我的推送服务器,但收到错误:缺少客户端配置:请检查key,secret和app_id是否已配置。我想检查我的环境变量,但在Stack Overflow上还找不到任何明确的方法来做到这一点。
smdnsysy1#
正如其他答案所指出的那样,可以在命令行中使用/usr/bin/env或/usr/bin/printenv来查看Rails启动前shell中的环境,或启动后子shell中的环境。例如:
/usr/bin/env
/usr/bin/printenv
rails s
env
fg
在Ruby中,ENV是环境变量的“类似散列”的访问器;它实际上不是一个Hash。您可以通过输入ENV或ENV['foo']从Rails控制台轻松地检查ENV,但有时您可能希望查看Rails在渲染期间认为环境是什么。在这种情况下,您需要Rails调试助手。例如:
ENV
ENV['foo']
# ERB <%= debug ENV.to_h.to_yaml %> # HAML = debug ENV.to_h.to_yaml
调用#to_yaml序列化ENV对象将使输出更易于阅读,但需要您首先将ENV转换为散列或数组。您也可以只调用debug ENV而不使用链接;只是眼睛更难受
debug ENV
zpjtge222#
在rails控制台中使用命令ENV。这将返回您可以访问的环境值的散列。或者,您可以使用相同的命令从应用程序根路径访问环境变量,这些变量将被格式化返回。
c6ubokkw3#
或者使用O/S shell,在Ubuntu中使用
printenv
rqdpfwrv4#
envprintenv
wxclj1h55#
我还在视图层中使用了以下内容:
<% request.env.each do |key, value| %> <strong><%= key %></strong> => <%= value %><br/> <% end %>
我发现它对调试由在passenger/nginx级别设置的env变量引起的问题非常有帮助,当我使用rails控制台时,这些问题不会出现。
inkz8wg96#
如果你想访问credentials.yml文件中的变量,这是一个非常好的方法:
Rails.application.credentials
6条答案
按热度按时间smdnsysy1#
从Shell打印环境
正如其他答案所指出的那样,可以在命令行中使用
/usr/bin/env
或/usr/bin/printenv
来查看Rails启动前shell中的环境,或启动后子shell中的环境。例如:rails s
返回env
返回fg
返回从视图层显示ENV
在Ruby中,ENV是环境变量的“类似散列”的访问器;它实际上不是一个Hash。您可以通过输入
ENV
或ENV['foo']
从Rails控制台轻松地检查ENV,但有时您可能希望查看Rails在渲染期间认为环境是什么。在这种情况下,您需要Rails调试助手。例如:调用#to_yaml序列化ENV对象将使输出更易于阅读,但需要您首先将ENV转换为散列或数组。您也可以只调用
debug ENV
而不使用链接;只是眼睛更难受zpjtge222#
在rails控制台中使用命令
ENV
。这将返回您可以访问的环境值的散列。或者,您可以使用相同的命令从应用程序根路径访问环境变量,这些变量将被格式化返回。c6ubokkw3#
或者使用O/S shell,在Ubuntu中使用
rqdpfwrv4#
这两个命令都将打印到stdout环境变量:
env
printenv
wxclj1h55#
我还在视图层中使用了以下内容:
我发现它对调试由在passenger/nginx级别设置的env变量引起的问题非常有帮助,当我使用rails控制台时,这些问题不会出现。
inkz8wg96#
如果你想访问credentials.yml文件中的变量,这是一个非常好的方法: