2009-08-28 88 views
0

对不起,这可能是一个基本/愚蠢/ noob问题 - 我只是想调整一个现有的Ruby脚本 - 它运行在我的Mac上,但无法在Ubuntu 9.04上运行。ruby​​ noob:/usr/lib/ruby/1.8/rss/rss.rb:922:in`have_required_elements?':undefined method

的错误是这样的:

/usr/lib/ruby/1.8/rss/rss.rb:922:in `have_required_elements?': undefined method `have_required_elements?' for "App Store Reviews for ":String (NoMethodError) 
    from /usr/lib/ruby/1.8/rss/maker/base.rb:188:in `any?' 
    from /usr/lib/ruby/1.8/rss/rss.rb:922:in `each' 
    from /usr/lib/ruby/1.8/rss/rss.rb:922:in `any?' 
    from /usr/lib/ruby/1.8/rss/rss.rb:922:in `have_required_elements?' 
    from /usr/lib/ruby/1.8/rss/maker/base.rb:188:in `all?' 
    from /usr/lib/ruby/1.8/rss/rss.rb:917:in `each' 
    from /usr/lib/ruby/1.8/rss/rss.rb:917:in `all?' 
    from /usr/lib/ruby/1.8/rss/rss.rb:917:in `have_required_elements?' 
    from /usr/lib/ruby/1.8/rss/rss.rb:962:in `tag' 
    from /usr/lib/ruby/1.8/rss/rss.rb:884:in `to_s' 
    from /usr/lib/ruby/1.8/rss/rss.rb:924:in `have_required_elements?' 
    from /usr/lib/ruby/1.8/rss/maker/base.rb:188:in `all?' 
    from /usr/lib/ruby/1.8/rss/rss.rb:917:in `each' 
    from /usr/lib/ruby/1.8/rss/rss.rb:917:in `all?' 
    from /usr/lib/ruby/1.8/rss/rss.rb:917:in `have_required_elements?' 
    from /usr/lib/ruby/1.8/rss/rss.rb:962:in `tag' 
    from /usr/lib/ruby/1.8/rss/rss.rb:1284:in `tag' 
    from /usr/lib/ruby/1.8/rss/rss.rb:884:in `to_s' 
    from ./appstore_reviews:215:in `write' 
    from ./appstore_reviews:215 
    from ./appstore_reviews:214:in `open' 
    from ./appstore_reviews:214 

这是使用Ruby的RSS位,并试图写出来的RSS文件。错误来自文件写入行:

... 
version = "2.0" 
destination = "appreviews_"+ARGV[0]+".xml" 
puts destination 
content = RSS::Maker.make(version) do |m| 
m.items.do_sort = true 

# a simple command-line presentation 
software.keys.sort.each do |software_key| 

m.channel.title = "App Store Reviews for ",software_key 
m.channel.link = "http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=",ARGV[1],"&mt=8" # need to put in link to itunes 
m.channel.description = "App Store Reviews for ",software_key 
... 

File.open(destination,"w") do |f| 
f.write(content) 
end 

这是基于iPhone的应用程序审查scaper代码: link text

随着 link text

感谢抛出一些基本的RSS提要的东西提前任何提示/指针。 Chris

回答

1

错误消息是关于String没有方法“have_required_elements?”。

根据http://www.ruby-doc.org/core-1.9/classes/RSS/Element.html RSS ::元素有一个名称的方法。您可能在某个时候调用了一个带有错误类型参数的方法。

这行看起来可疑:

m.channel.title = "App Store Reviews for ",software_key 

你想连接两个字符串?在这种情况下,您应该使用加号而不是逗号。这里的逗号隐式地生成一个数组。

+0

谢谢 - 现在接下来的问题......但至少这个错误已经结束:) – 2009-08-29 19:45:16