我正在尝试使用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
答案 0 :(得分:1)
目前你运行这一行
my_list.add(Task.new('Make Breakfast'))
Task
尚未定义。这发生在几行之后。
只需交换Task
和List
类的定义。
答案 1 :(得分:1)
当您从命令行以脚本形式运行该文件时,声明顺序很重要。如果您移动上面列出的任务声明,您将发现它将解决相关错误。