0

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

谢谢!

4

1 回答 1

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
于 2012-11-08T19:37:34.983 回答