Ruby:未定义的方法`include?' for nil:NilClass(NoMethodError)

时间:2016-01-15 20:36:58

标签: ruby

我无法为删除条件表达式错误找到正确的解决方法,特别是' include?'

when "delete"
  puts "Please type verbatim task to delete:"
  target_task = gets.chomp
  if @all_tasks.include?("target_task")
    @all_tasks.delete("target_task")
    puts "#{target_task} was removed from list"
  end

GitHub上的完整代码linked here。第70行。

我试过适当的包括?格式链接here,尝试target_task的括号和引号的每个组合,并尝试包括my_list.@all_tasks.include?。没有骰子。

1 个答案:

答案 0 :(得分:3)

问题是@all_tasksList类的实例变量,您尝试在类外部访问它。为此,请添加

attr_reader :all_tasks

List类的定义内并调用

if my_list.all_tasks.include?("target_task")

代替。