我在我的Rails应用程序中收到此错误,无法找到解决方案。我将从失败的类中添加一些代码。如果你这么想,这可能是一个更具体系结构的问题,请说,我将从其他类中添加更多代码。我基本上只有这个模型,一个控制器和另一个位于lib的类。当然是一种观点。提前谢谢!
#app/models/news_api.rb
require 'open-uri'
class NewsApi
URL = "http://www.mysomething.com/partner/api/1_0/somerandomnumber/
channel/290/material/list/"
def self.download
new.document.css('news').map {|node| record(node) }
end
def document
Nokogiri::XML(open(URL))
puts URL.to_s
end
def record(node)
Story.new(node_to_hash(node))
end
def node_to_hash(node)
Hash[Story::ATTRIBUTES.collect {|attribute| [attribute, text(node, attribute)] }]
end
def text(node, selector)
node.css(selector).text
end
end
@idlefingers:这是我视图中的代码。我在做什么基本上是使用Nokogiri从API解析一些xml,然后在我的视图中在HTMl中显示响应。
<ul id="news">
<% @stories.each do |story| %>
<li class=" <%= story.type_of_media %>">
<h2><%= link_to story.header, story.url %></h2>
<p class="permalink"><%= link_to 'Trackback', story.url %></p>
<p class="meta">
<strong><%= story.source_name %></strong>
<br/>
<%= story.created_at %>
<br/>
<%= story.geo %>
</p>
<p class="summary"><%= story.summary %></p>
</li>
&lt;%end%&gt;
答案 0 :(得分:2)
错误来自何处?乍一看,它似乎来自.document
方法,但目前尚不清楚。你能添加错误回溯吗?
现有的.document
方法将返回puts URL.to_s
的结果,该结果为零。您只需按照它的外观切换.document
方法中的两行......
def document
puts URL.to_s
Nokogiri::XML(open(URL))
end