2015-05-15 6 views
-2

Мне нужна помощь с Ruby. У меня есть класс, который содержит два метода. Первый метод открывает файл, а второй метод работает с данными, считанными из файла.Ошибка Ruby - неопределенная локальная переменная или метод

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

class Example 

    def load_json(filepath) 
    require 'json' 
    file = File.read(path-to-file) 
    file_data = JSON.parse(file) 
    end 

    def read_data(tag) 
    load_json(tag) 
    #code to read and work with the data from file_data 
    end 

end 

Когда я пытаюсь что это дает мне следующую ошибку:

`file_data': undefined local variable or method `file_data' 

Любая помощь с этим? Благодаря! Я - новичок Ruby.

+0

заменить 'read_json' на' load_json'? – apneadiving

+0

Отредактированный вопрос. Была опечатка. –

+0

Эта опечатка вызывала ошибку 'undefined local variable или method 'read_json''. – infused

ответ

0

Изменить file_data как @file_data в обеих функциях, что делает его переменной экземпляра. Без @ это только локально для функции и выходит за рамки, когда функция выходит/возвращает.

class Example 

    def load_json(filepath) 
    require 'json' 
    file = File.read(path-to-file) 
    @file_data = JSON.parse(file) 
    end 

    def read_data(tag) 
    load_json(tag) 
    #code to read and work with the data from @file_data 
    end 

end 
+0

Спасибо, :-) Вот и все. –

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