Sinatra和Heroku的问题

时间:2010-05-21 20:02:08

标签: ruby sinatra heroku

所以我创建并发布了一个Sinatra应用程序给Heroku而没有任何问题。我甚至用Rackup在本地测试它以确保它的功能正常。在从URL中使用邮政编码后,有一系列API调用到各个地方,但Heroku只是想告诉我服务器错误。

我添加了一个错误页面,试图给我更多描述,但是,它告诉我它不能对#执行`count',我认为这意味着哈希。这是我认为它正在尝试执行的代码......

if weather_doc.root.elements["weather"].children.count > 1
  curr_temp = weather_doc.root.elements["weather/current_conditions/temp_f"].attributes["data"]
else
  raise error(404, "Not A Valid Zip Code!")
end

如果有人想敲响它,可以通过http://quiet-journey-14.heroku.com/来达到,但是没有多少可以接受。

3 个答案:

答案 0 :(得分:1)

Hash没有count方法。它有一个length方法。如果#确实引用了哈希对象,那么问题是你正在调用一个不存在的方法。

答案 1 :(得分:0)

如果您想查看#背后的内容,请尝试

raise probably_hash.class.to_s

答案 2 :(得分:0)

#没有引用哈希,它是#<Array:0x2b2080a3e028>的第一个字符。 <>之间的部分未在浏览器中显示(隐藏标记本身),但在View Source中可见。

你真正的问题与Ruby无关,而是与HTML或XML文档中的导航(通过DOM)有关。你的陈述

  

weather_doc.root.elements [“weather”]。children.count&gt; 1

导航HTML / XML文档,选择“天气”元素,并(尝试)计算子项。 children调用的结果没有方法count。请改用length

BTW,您确定该文档包含标记<weather>吗?因为那是你想要选择的。