【发布时间】:2012-11-08 19:26:43
【问题描述】:
我有两个 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 不这样做?
谢谢!
【问题讨论】:
-
有没有办法为您的
open方法添加选项?类似open("url", :port => 9090) -
我用的是 Ruby 的 openURI,好像没有……ruby-doc.org/stdlib-1.9.3/libdoc/open-uri/rdoc/OpenURI.html
-
为什么不想从控制器中传递呢?您可以在初始化模型实例时设置它并将其存储在实例变量中......我认为它足够干净
-
Intrepidd 的解决方案看起来不错,但我开始想,也许我会从控制器中传入变量...!
-
如果您的应用程序可以从多个域访问(例如每个国家一个域...),从控制器获取它比在 yaml 中设置更容易