2016-08-01 3 views
0

я поступил следующий код из книги Zed Шоу на «Обучение Рубин Трудный путьнеопределенный метод `грызть» для ноль: NilClass (NoMethodError)

input_file = ARGV.first #this takes the file test.txt 

def print_all(f) #reading a line 
puts f.read 
end 

def rewind(f) 
f.seek(0) 
end 

    def print_a_line(line_count, f)     
    current_line 
    puts "#{line_count}, #{f.gets.chomp}" 
    end 

    current_file = open(input_file) 

puts "First let's print the whole file:\n" 

print_all(current_file) 

puts "Now let's rewind, kind of like a tape" 

rewind(current_file) 

puts "Let's print three line:" 

current_line = 1 
print_a_line(current_line, current_file) 

current_line = current_line + 1 
print_a_line(current_line, current_file) 

current_line = current_line + 1 
print_a_line(current_line, current_file) 

Ошибка я получаю 'ex20.rb:12:in print_a_line': undefined method chomp' for nil:NilClass (NoMethodError) от EX20. гь: 31:. в `»

Любая помощь будет принята с благодарностью я последовал его примеру слово за словом

+0

Вы запускаете его так: 'ruby ex20.rb test.txt'? Эта ошибка указывает на отсутствие (или неправильных) данных в 'test.txt'. – orde

+0

Да, я. Как я могу запустить его как другой файл. – AltBrian

ответ

1
.

Вы должны добавить еще несколько строк в файл test.txt (по крайней мере три строки текста для каждого вызова метода, который вы делаете в конце).

Я столкнулся с одной и той же проблемой, потому что урок не совсем ясен, но поскольку сценарий печатает три строки подряд, вам нужно 3 строки текста в файле для работы сценария.

Смежные вопросы