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 に答える