0

比較で == を > に変更すると、Ruby で次のエラーが発生します。

nano:jc] ruby ItemController.rb

file read: snippets.txt

ItemController.rb:23:in `read': undefined method `>' for nil:NilClass (NoMethodError)
    from ItemController.rb:19:in `open'
    from ItemController.rb:19:in `read'
    from ItemController.rb:58

以下は、苦情の原因となっているメソッド定義です。ラインを見る

if line.index("<item>") > -1

if line.index("<item>") == 0

できます。> 0 でも失敗します。

ゆう!

  def read
    @item_count = 0
    File.open(@file_name, 'r') do |f1|
      while line=f1.gets
        @line.concat([line])

        if line.index("<item>") > -1
          puts "begin"
          @item_count = @item_count + 1
        end

        if line.index("</item>") == 0 
          puts "end\n"

        end

        # puts line
      end # while
   end # do
  end # def
4

1 に答える 1

5

あなたのline.index("<item>")評価はnilです。Nil には==メソッドがありますが、ありません>。したがって、根本的な原因は、nil予期していなかった場所があることです。

于 2012-02-19T10:49:40.137 に答える