类之外的类/调用方法的未定义方法

时间:2015-02-24 21:34:09

标签: ruby nomethoderror

class Computer_create

  public
  def initialize(filename)
    @@files = []
    @filename = filename
  end

  public
  def create(filename)
    @@files << filename
    puts "File: #{filename} has been created"
  end

  public
  def list
    return @@files
  end
end

file_1 = Computer_create.new("FileTest")
file_1.create("FileTest")

Computer_create.list
我只想尝试创建一个简单的数据库,它可以创建文件,并将它们存储在一个数组中,然后将它们存储在哈希中。 但是每次我试用我的代码时它都会给我这个:

&#34; computer_create.rb:24:in <top (required)>': undefined method list&#39; for Computer_create:Class(NoMethodError)&#34;

我想要做的是:通过FileTest制作一个名为file_1的文件 然后列出@@files中的所有文件 但它似乎没有用。

1 个答案:

答案 0 :(得分:0)

错误信息完全正确;该课程没有list方法。

在您已创建的list实例上调用Computer_create,例如,

file_1.list

换句话说,就是你如何调用其他实例方法file_1.create

您还以......不寻常的方式使用@@。据我所知,这些变量是实例变量,只需要一个@

不相关,但在每个公共方法之前放置public是嘈杂且不必要的。事实上,我只说过一次将private放在私人方法的集合面前。