1

我正在尝试将 RSS 解析器集成到我的 IRC 机器人中,并且我在网上找到了一些简单的代码,但是,如果我将此代码放入机器人中,我会得到:

Error: private method `send' called for #<RSS::REXMLListener:0x3d7c790>

我不确定为什么它会给我这个错误,因为它在 IRB 或它自己的私有脚本中运行良好。这是代码,以及导致错误的行。

def fetch_rss_items(url, max_items = nil)
    %w{open-uri rss/0.9 rss/1.0 rss/2.0 rss/parser}.each do |lib|
        require(lib)
    end

    rss = RSS::Parser.parse(open(url).read) #This line is causing the error
    rss.items[0...(max_items ? max_items : rss.items.length)]
end
4

1 回答 1

0

我很确定,我刚刚遇到了同样的问题:

私有方法send' called for #<Nokogiri::CSS::XPathVisitor:0x31b6108>; c:/ruby192/lib/ruby/gems/1.9.1/gems/nokogiri-1.4.3.1-x86-mingw32/lib/nokogiri/css/node.rb:17:in接受'

问题是您在某处声明了 function send,并且: ruby​​ 的默认命名空间是 Object 类,您在默认命名空间中定义的方法被认为是 Object 的私有方法

http://railsforum.com/viewtopic.php?id=31016

PS:有人知道如何避免此类错误吗?

于 2011-08-12T07:07:28.630 回答