我有两个Web服务器实例。一个在端口3000上运行,一个在9090上运行。我想访问位于9090端口的JSON文件。
在rails模型中,当我使用
时,我可以正常访问JSON文件stream = open("http://localhost:9090/file.json")
但我想做的更像是
stream = open(":9090/file.json") # OUTPUT: No such file or directory - :9090/file.json
我想避免硬编码URL(显然),如果我还想避免将“域”从Rails控制器传递到rails模型。
或者是否有一个处理访问不同端口的包,如果openURI没有这样做?
谢谢!
答案 0 :(得分:2)
您可以创建一个全局CONFIG变量,例如,它将加载config / config.yml的内容。
您可以在初始化程序中加载此文件,这是我的:
if !defined? CONFIG
CONFIG = YAML.load_file(File.join(Rails.root, "config", "config.yml"))[Rails.env] rescue []
end
然后在你的模型中:
stream = open("#{CONFIG['url']}:9090/file.json")
假设你的config.yml看起来像这样:
development:
url: http://localhost
production:
url: http://what.ever