Ruby 在我的CLI中使用以显示从API接收的信息时遇到问题

Ruby 在我的CLI中使用以显示从API接收的信息时遇到问题,ruby,command-line-interface,Ruby,Command Line Interface,我正在创建一个CLI,我的基本功能正常工作,但是在我的第二层,当它应该显示从API中提取的对象的信息时,我得到了一个变量/方法错误,我想知道这是否是因为一旦选择了对象,就没有pokemon密钥显示在pokemon的内部杂烩 下面是错误,然后是API文件,后面是有问题的方法/变量 PokeDEX CLI/lib/PokeDEX_CLI/CLI.rb:47:在'sub_menu_input'中:未定义的局部变量或#的'pokemon'方法(NameError) 你是说?列表\口袋妖怪 BAS

我正在创建一个CLI,我的基本功能正常工作,但是在我的第二层,当它应该显示从API中提取的对象的信息时,我得到了一个变量/方法错误,我想知道这是否是因为一旦选择了对象,就没有pokemon密钥显示在pokemon的内部杂烩

下面是错误,然后是API文件,后面是有问题的方法/变量

PokeDEX CLI/lib/PokeDEX_CLI/CLI.rb:47:在'sub_menu_input'中:未定义的局部变量或#的'pokemon'方法(NameError)
你是说?列表\口袋妖怪

    BASE_URL = "https://pokeapi.co"

    def self.get_all_pokemon(page=nil)
        if page
            response = RestClient.get(page)
        else 
            response = RestClient.get("https://pokeapi.co/api/v2/pokemon?limit=151")
        end
        pokemon_array = JSON.parse(response.body)["results"]
#binding.pry
        pokemon_array.each do |pokemon|
            PokeDEXCLI::Pokemon.new(pokemon)
        end
    end


end 

    def sub_menu_input
        user_input = gets.strip

        if user_input.to_i.between?(1, PokeDEXCLI::Pokemon.all.length)
          character = PokeDEXCLI::Pokemon.all[user_input.to_i - 1]
          print_pokemon_details(pokemon)
          continue?
        elsif user_input.downcase == "exit"
          goodbye
        else
          invalid_choice
          sub_menu_options
        end
      end

      def print_pokemon_details(pokemon)
        puts "Name: #{pokemon.name}"
        puts "Number: #{pokemon.id}"
        puts "Types: #{pokemon.types}"
      end

错误在这里:

character = PokeDEXCLI::Pokemon.all[user_input.to_i - 1]
print_pokemon_details(pokemon)  
                    # ^^^^^^^ pokemon not defined
你可能是说:

pokemon = PokeDEXCLI::Pokemon.all[user_input.to_i - 1]
^^^^^^^
print_pokemon_details(pokemon)

sub\u menu\u input
中没有名为
pokemon
的东西。但是我不是在用它需要的参数调用我的方法,所以它不应该接受它吗?我不知道你刚才说了什么。在
子菜单输入
中没有名为
口袋妖怪
的变量<代码>子菜单输入不接受任何参数。不清楚你认为它应该从哪里“接受”它;在你发布的代码中只有一个
pokemon
引用,它是
pokemon\u数组的本地引用。每个
块。是的,这是我在重新阅读sub\u菜单时看到的,并查看它为什么没有定义