Rails - 访问文件坐在不同的端口

时间:2012-11-08 19:26:43

标签: ruby-on-rails open-uri

我有两个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没有这样做?

谢谢!

1 个答案:

答案 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