У меня есть вопрос в отношении некоторых из моего кода для rubygem - PullRequest
0 голосов
/ 01 февраля 2019

Я получаю эту проблему с некоторыми из моего кода.

scraper.rb:14:in `block (2 levels) in scrape_movieinfo':  undefined method `slice!' for nil:NilClass (NoMethodError)
        from /usr/local/rvm/gems/ruby-2.3.1/gems/nokogiri-1.10.1/lib/nokogiri/xml/node_set.rb:238:in `block in each'
        from /usr/local/rvm/gems/ruby-2.3.1/gems/nokogiri-1.10.1/lib/nokogiri/xml/node_set.rb:237:in `upto'
        from /usr/local/rvm/gems/ruby-2.3.1/gems/nokogiri-1.10.1/lib/nokogiri/xml/node_set.rb:237:in `each'
        from /home/empathetic-file-5230/temporary/Project1/Best50Films2018/lib/Best50Films2018/scraper.rb:12:in `block in scrape_movieinfo'
        from /usr/local/rvm/gems/ruby-2.3.1/gems/nokogiri-1.10.1/lib/nokogiri/xml/node_set.rb:238:in `block in each'
        from /usr/local/rvm/gems/ruby-2.3.1/gems/nokogiri-1.10.1/lib/nokogiri/xml/node_set.rb:237:in `upto'
        from /usr/local/rvm/gems/ruby-2.3.1/gems/nokogiri-1.10.1/lib/nokogiri/xml/node_set.rb:237:in `each'
        from /home/empathetic-file-5230/temporary/Project1/Best50Films2018/lib/Best50Films2018/scraper.rb:8:in `scrape_movieinfo'
        from /home/empathetic-file-5230/temporary/Project1/Best50Films2018/lib/Best50Films2018/cli.rb:6:in `run'
        from bin/Best50Films2018:3:in `<main>'

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

В первой строке сообщения об ошибке сообщается, что: В строке 14 в вашем scraper.rb вы вызываете метод slice! для чего-то, что nil.

Что это обычно означает: slice! - это метод, который определен для нескольких различных типов объектов - например: String, Hash, Array.Похоже, что в scapper.rb:14 вы думаете, что у вас есть переменная с экземпляром одного из этих объектов, но на самом деле это переменная nil.

Поскольку вы не опубликовали свой код, никто не сможетрасскажу, что пошло не так и как это исправить.Я предлагаю посмотреть на место, где вы назначаете что-то для этой переменной.Или посмотрите, есть ли в имени переменной простая опечатка.

0 голосов
/ 01 февраля 2019

В следующий раз, когда вы зададите вопрос с такой ошибкой, пожалуйста, покажите код. Вы прокомментировали "Вот код".но единственный код - это сообщение об ошибке.

На основании очень ограниченного знания Ruby, ваша ошибка показывает, что вы не пытаетесь вызвать закрытый метод, в противном случае это может привести к такой ошибке.

private method encrypt' called for #<Person:0x007fa179863770 @name="Ada"

Метод, похоже, не определен.Это было сделано? «неопределенный метод», ошибка ruby ​​ Я действительно не знаю, как на это ответить, информации не так много, и я почти уверен, что на этот вопрос невозможно ответить, если на самом деле не отображается .код.

Возможно, вы используете 'slice!'без каких-либо аргументов.

Это похоже на создание метода, который принимает 1 переменную (аргумент), но вы вызвали его без переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...