Ruby Error - 未定义的局部变量或方法

时间:2015-05-15 22:10:03

标签: ruby-on-rails ruby ruby-on-rails-3

我有一个包含两个方法的Ruby类。第一种方法打开文件,第二种方法使用从文件读取的数据。

请注意,这不是我正在处理的原始代码,而是用于演示我遇到的问题。

O(n * log(n))

当我尝试时,它会给我以下错误:

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

我是Ruby初学者。

1 个答案:

答案 0 :(得分: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