我一直在敲定一些方法并在控制台中对其进行测试。问题是在服务器上运行时出现错误。具体来说,下面的第一种方法会触发此NoMethod
错误:
undefined method `text' for nil:NilClass
这是代码。它来自 pages.rb 文件,该文件有一个 uri 列。
def download_page_title
page_as_xml.at_css('title').text
end
def page_as_xml
page_as_xml ||= Nokogiri::HTML(open(page_uri))
end
def page_uri
base_uri = Site.find_by_id(self.site_id).homepage #always has "/" at end
if self.url == base_uri
page_uri = base_uri
else
page_uri = "#{base_uri}#{self.url}"
end
end
知道我做错了什么吗?此外,任何想法为什么事情在控制台中顺利进行,但在服务器上脱轨?
编辑:这是我在控制台中所做的一个示例。
1.9.3p194 :262 > a = Webpage.new( url: "http://www.cnn.com/", site_id:165)
=> #<Webpage id: nil, url: "http://www.cnn.com/", site_id: 165, created_at: nil, updated_at: nil, title: nil>
1.9.3p194 :263 > a.download_page_title
Site Load (0.3ms) SELECT "sites".* FROM "sites" WHERE "sites"."id" = 165 LIMIT 1
=> "CNN.com - Breaking News, U.S., World, Weather, Entertainment & Video News"