Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trial
Daniel Hunter
7,349 PointsHaving trouble with Ruby Hash Challenge 2 of 2
Using the values_at method, create an array called grocery_list with the value of the grocery_item hash at the "item" key.
grocery_item = { "item" => "Bread", "quantity" => 1, "brand" => "Treehouse Bread Company" }
if grocery_item.has_value?("Bread")
grocery_item["food"] = true
end
grocery_list = { grocery_item.values_at("item") }
Not sure why I'm getting an error message on this one.
4 Answers
Brandon Barrette
20,485 PointsThe values_at method will automatically create a new hash. So there is no need to have { } around it's output.
Alexander Moore
3,349 PointsWouldn't the values.at method create an Array?
Either way removing the {} is the right answer.
ellie adam
26,377 Pointsthis works fine
if grocery_item.has_value?("Bread") grocery_item["food"] = true end
grocery_list = grocery_item.values_at("item")
charles santana
1,627 PointsHI I am confused with array? how come we're not using [] , and we're using values_at("item").
Bellow is the code I used it worked but I am confused with the logic I guess
grocery_item = { "item" => "Bread", "quantity" => 1, "brand" => "Treehouse Bread Company" }
if grocery_item.has_value?("Bread") grocery_item.store("food", true) end
grocery_list = grocery_item.values_at("item")
Daniel Hunter
7,349 PointsDaniel Hunter
7,349 PointsOk got it thanks!