没有服务器响应



我真的找不到解决方案。我正在尝试访问游戏API,以填充我手动插入的游戏的平台(PS3 Xbox(信息。我所拥有的关于游戏的所有信息(比如游戏名称(都在强参数中。所以我使用我手动插入的名称来获得使用API的平台。

当我尝试第一个例子时,一切都很好,但在第二个例子中,我没有从服务器得到答案。当我提交到创建操作时,没有发生任何事情,服务器日志上没有一行:-/

示例之间唯一的区别是我保存游戏名称以发出API请求的方式。我正在使用NokogiriGem来解析API的XML,代码对我来说很好

你能帮我吗?

谢谢,

示例1(效果良好(:

def create
    @game = Game.new(game_params)
    firstUrl = "http://thegamesdb.net/api/GetGamesList.php?name=sonic"
    # I'm hardcoding a game just for debug 
    gameList = Nokogiri::XML(open(firstUrl))
    gameApiId = gameList.css("Game id").first.text
    secondUrl = "http://thegamesdb.net/api/GetGame.php?id=" + gameApiId
    gameInformation = Nokogiri::XML(open(secondUrl))
    @game.platform = gameInformation.xpath("//Game//Platform").text
       if @game.save
        redirect_to @game, notice: 'Game was successfully created.'
       else
        render :new
       end
end
    private
      def game_params
        params.require(:game).permit(:name, :publisher, :year, :description, :image, levels_attributes: [:id, :name, :sort_order, :_destroy])
      end

示例2(服务器没有响应(

def create
    @game = Game.new(game_params)
    firstUrl = "http://thegamesdb.net/api/GetGamesList.php?name=" + @game.name.gsub(/s+/, "")
    # I'm hardcoding a game just for debug 
    gameList = Nokogiri::XML(open(firstUrl))
    gameApiId = gameList.css("Game id").first.text
    secondUrl = "http://thegamesdb.net/api/GetGame.php?id=" + gameApiId
    gameInformation = Nokogiri::XML(open(secondUrl))
    @game.platform = gameInformation.xpath("//Game//Platform").text
       if @game.save
        redirect_to @game, notice: 'Game was successfully created.'
       else
        render :new
       end
end
    private
      def game_params
        params.require(:game).permit(:name, :publisher, :year, :description, :image, levels_attributes: [:id, :name, :sort_order, :_destroy])
      end

总之,区别在于:

firstUrl = "http://thegamesdb.net/api/GetGamesList.php?name=" + @game.name.gsub(/s+/, "")

你将在这里获得关于如何debug这个问题的提示。问题是,由于您正在ping第三方API,我们对返回数据的含义知之甚少,这使得任何"解决方案"都成为在黑暗中刺破的情况

--

调试

我会做几件事:

  1. 请确保此新链接是可访问的&返回数据
  2. 确保其余的变量&数据完好无损
  3. 确保第三方API能够提供您想要的退货

我怀疑问题将与您呼叫@game.name.gsub-的方式有关。您是否确认这确实被呼叫

我刚刚测试了url http://thegamesdb.net/api/GetGamesList.php?name=StarFox,它带回了数据。经过初步检查,我怀疑问题的关键在于您调用此url

相关内容

  • 没有找到相关文章

最新更新