Nokogiri在Heroku上找不到外部URL

时间:2013-06-27 17:06:40

标签: ruby-on-rails ruby heroku nokogiri

我有一个小型Rails应用程序,它使用Nokogiri来解析另一个站点上的XML文件。在当地,一切正常。

然而,当我将应用程序部署到Heroku时,事情很快就会破裂 - 我不断收到错误no such file or directory - <my url>

基本上,我的代码中的行是

doc = Nokogiri::XML(open("http://www.w3schools.com/xml/note.xml"))

真正的网址是不同的,但我很困惑为什么本地运行没有问题,但Heroku无法处理它。

1 个答案:

答案 0 :(得分:2)

open-uri可能会根据您的请求创建Tempfile(而不是String)。 Heroku在访问文件系统时有一些限制,可能无法识别您的临时文件。尝试:

url_text = Net::HTTP.get(URI.parse "http://www.w3schools.com/xml/note.xml")
doc = Nokogiri::XML(url_text)

编辑:没关系,看起来Heroku与Tempfile一起工作就好了。您可能只需要在Rails初始化过程中的某个地方require 'open-uri'(例如application.rb)。如果仍然无效,请尝试上面的代码行。