Ruby中未初始化的常量

时间:2017-11-20 15:39:17

标签: ruby

我正在尝试使用CodeAcademy上的Ruby this教程。以下代码给出了错误

“未初始化的常量List :: Task(NameError)     from to_do.rb:2:in main“

据我所知,这可能与List类无法访问Task类有关,但我看不出它会在哪里发生故障?代码如下。

   #list class

   class List
    attr_reader :all_tasks
    if __FILE__ == $PROGRAM_NAME
      my_list = List.new
      puts 'You have created a new list'
      my_list.add(Task.new('Make Breakfast'))
      puts 'You have added a task to the Todo List'
   end

   def initialize
    @all_tasks = []
   end

 def add(task)
  @all_tasks << task
 end


 end


 #class task

 class Task
  attr_reader :description

  def task_item(desription)
   @new_item = description
  end
end

2 个答案:

答案 0 :(得分:1)

目前你运行这一行

my_list.add(Task.new('Make Breakfast'))

Task尚未定义。这发生在几行之后。

只需交换TaskList类的定义。

答案 1 :(得分:1)

当您从命令行以脚本形式运行该文件时,声明顺序很重要。如果您移动上面列出的任务声明,您将发现它将解决相关错误。