我对红宝石很新,所以不知道接近这个......请善待。
我有一个配置文件,我需要阅读并替换2个值...
我需要更新的块是:
rails_root = File.expand_path('../..', __FILE__)
if %w(development test).include?(ENV['RAILS_ENV'])
worker_processes 2
else
worker_processes 100
end
...snip...
我需要替换" worker_processes"的值。新的价值......分别说20和50 ...任何帮助非常感谢。提前谢谢!
答案 0 :(得分:0)
Ruby提供了一些跨多个文件操作数据的方法。听起来你正在考虑更多的FileIO方法,但为了性能和杂乱的可能性,我会建议反对。
由于您在Rails中工作,我会将work_processes作为全局哈希处理。
创建$work_processes = Hash.new
并拥有一组将在该文件中引用的密钥。
rails_root = File.expand_path('../..', __FILE__)
if %w(development test).include?(ENV['RAILS_ENV'])
$worker_processes[:dev_env] #=> 2
else
$worker_processes[:other] #=> 100
end
...snip...
在此示例中,在Rails项目中的任何文件中调用work_processes[:dev_env]
将返回' 2'并且可以替换为您想要的任何数字。
要了解有关全局变量范围的更多信息,请查看docs。
编辑:我想要注意的是,全局变量的使用是不受欢迎的,并且可以让你了解漏洞。您可以使用环境变量完成相同类型的效果。 ENV['work_process_1']
和ENV['work_process_2']
。您可以在this blog post中找到更多信息。