Ruby中的环境值

时间:2014-03-02 07:53:19

标签: ruby-on-rails ruby

大家好我想问一下,如果Ruby有一个环境值,我可以在其中存储一个变量并在我的测试中的任何地方使用它,就像QTP Environment.value =“SomeValue”

3 个答案:

答案 0 :(得分:1)

环境变量存储在ENV常量中,可以像Hash

一样访问

例如

ENV["PS1"]
=> "\\u@\\h:\\w (\\t)$ "

环境变量在存储配置时非常有用

这样:

ENV["QTP"] = "Some value"

会使ENV["QTP"]成为可在应用程序的整个生命周期内访问的环境变量(您可以根据testdevelopment或{{1}中的环境对此进行调整}})

因此,您可以在运行ruby应用程序之前将配置存储在shell变量中,production包含:

bar.rb

运行ruby文件,如下所示:

puts ENV["QTP"]

将“foo”打印到您的控制台

或者你可以将值存储在一个常量中,并且它应该在应用程序的整个生命周期内保持相同

答案 1 :(得分:0)

如果是您的测试并且您不关心线程安全性,则可以使用全局变量或常量。

$global_var = "SomeValue"
CONSTANT = "SomeValue"

不应修改CONSTANT,并且可以修改$global_var

如果您担心线程,可以使用线程变量

Thread.current[:your_var_name] = "SomeValue"

每个帖子的Thread.current[:your_var_name]

值都不同

答案 2 :(得分:0)

Environment Variables就是 - 存储在应用环境中的变量

您的应用程序的环境是您的应用程序运行的操作系统/服务器,这意味着如果您要存储在您的应用程序中使用的变量,则必须在操作系统级别设置它们


Heroku

Heroku上Rails中ENV变量的最佳示例:

heroku config:set YOUR_VAR=your_value

<强>费加罗

我强烈建议您查看Figaro gem

这可以模拟开发中的ENV变量,并允许您非常轻松地将它们推送到您的生产环境

强烈建议您在所有环境中保持ENV数据的一致性,这就是费加罗非常擅长的:)