Code Academy帮助 - Ruby

时间:2016-09-28 17:26:54

标签: ruby

要求我做以下事情:

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

4 个答案:

答案 0 :(得分:1)

您的代码实际上是正确的

我可以确认这是codecademy的一个错误,因为我的解决方案几乎相似,并通过了My code is similar to yours

That shows the code passed

我在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"}。如果是这种情况,那么你必须记住以下事项:

  1. 哈希的键应该是符号,而不是字符串(例如。:Batman,而不是"Batman"
  2. 值(评级)应为整数,而不是字符串。 (10,而非"10"
  3. 所以替换这一行:

    movies[title] = rating
    

    以下:

    movies[title.to_sym] = rating.to_i
    

    这是我能想到的唯一解释。但是,如果情况并非如此,那么我说你的代码很好,并且在movies哈希中添加了新的键值。

答案 3 :(得分:0)

这非常诱人:)所以,我实际登录到codeacademy,找到了示例并对其进行了处理。如果结果符合预期,Codeacademy只接受您的作业,无论其权利与否。所以我尝试了不同的答案,直到我得到了codeacademy喜欢的内容。enter image description here

此外,在您的代码中,当分配用于字符串时,您正在创建带符号的哈希。另外,您不会将输入值转换为符号。因此,即使您的解决方案可行,它也会在CodeAcademy上失败。