Ruby Ruby Loops Build a Simple Contact List Assigning Hash Values From Methods

why " Oops! It looks like Task 1 is no longer passing."?

contact = {"name" => "", "phone_number" => "" }

contact["name"] = get_name()

contact.rb
contact_list = []

contact = {"name" => "", "phone_number" => "" }

contact["name"] = get_name()
phone = get_phone_number()
contact["phone_number"].push(phone)

1 Answer

Jay McGavren
STAFF
Jay McGavren
Treehouse Teacher

It says "Task 1 is no longer passing" because some code was added that made the program stop working. (And if the program doesn't work, it can't pass Task 1.)

I copied this last line of your code:

contact["phone_number"].push(phone)

Then I clicked the "Go to task One" button, pasted it onto the end of the code, and clicked "Check work". I got this error:

NoMethodError: undefined method `push' for "":String Did you mean? puts

It returns this because the object returned by contact["phone_number"] is a String, not an Array, and so it doesn't have a push method. Instead of calling push, you should try assigning a value to the hash key using =.