要求我做以下事情:
1。 在你的时间内#34;添加"阻止,删除put"添加!"言。
取而代之的是提示用户输入电影标题。将结果保存在名为title的新变量中。 (您的代码已经有一个如何执行此操作的示例!)
接下来,提示用户评论电影。将其保存在名为rating的新变量中。
将该电影/评级对添加到电影哈希中,并添加一条消息,指示已添加该对。 (不需要to_sym或to_i!)
我这样做并得到一个错误,我没有添加到电影哈希!
movies = {
Batman: 10,
}
puts "What is your favorite movie?"
choice = gets.chomp
case choice
when 'add'
puts "What movie do you want to add?"
title = gets.chomp
puts "Whats the rating (1-10)?"
rating = gets.chomp
movies[title] = rating
puts "#{title} has been added with a rating of #{rating}!"
when "update"
puts "Updated!"
when "display"
puts "Movies!"
when "delete"
puts "Deleted!"
else
puts "Error!"
end
答案 0 :(得分:1)
您的代码实际上是正确的
我可以确认这是codecademy的一个错误,因为我的解决方案几乎相似,并通过了
我在Codecademy面临同样的挑战。我认为您的第一个选择是确保movies
哈希值不会被更改,并且它包含完全涵盖问题的所有电影。 Codecademy的问题在于它实际上检查了返回值而不是代码或逻辑,所以有时你可以通过编写将通过提交的代码来逃避,即使它不应该
如果这不能解决问题,或者重新设置代码并再次键入解决方案并提交。希望这可以纠正这个问题。在它工作之前我必须做几次这样的事情,因为codecademy似乎有几个错误。一切顺利,希望这能把它搞定
答案 1 :(得分:0)
您的哈希值可能需要符号键,而您正在添加字符串键。试试:
movies[title.to_sym] = rating
答案 2 :(得分:0)
如果你添加了电影"闪现"例如,等级为10的Code Academy可能希望movies
哈希值等于{:Batman=>10, :Shinning=>10}
,但是对于您的代码,我们将movies
等于{:Batman=>10, "Shinning"=>"10"}
。如果是这种情况,那么你必须记住以下事项:
:Batman
,而不是"Batman"
)10
,而非"10"
)所以替换这一行:
movies[title] = rating
以下:
movies[title.to_sym] = rating.to_i
这是我能想到的唯一解释。但是,如果情况并非如此,那么我说你的代码很好,并且在movies
哈希中添加了新的键值。
答案 3 :(得分:0)