Ruby HTTParty 没有方法错误

Ruby no method error with HTTParty

我试图在 Ruby 中发出 post 请求,但我遇到了不一致的行为。我目前在 OSX 上使用 ruby-2.0.0-p598。

使用 PRY 时,我键入以下 post 命令:

HTTParty.post(@base_uri + '/method/?argument1&api_key=' + @api_key)

我从 API 获得了成功的响应。但是,当我 运行 通过我的规格或在 class 内部时,我得到:

undefined method `+' for nil:NilClass

我知道这与加号有关,但我发现我的行为不同很奇怪。你能建议这样做的正确方法是什么吗?

提前致谢。

美好的一天 行为正确 - 一些变量 = 零。 您有检查变量,或者(在这种情况下最好不要这样做)调用 to_s:

HTTParty.post(@base_uri.to_s + '/method/?argument1&api_key=' + @api_key.to_s)

看起来@base_uri and/or @api_key 为空。请仔细检查它们是否使用有效字符串初始化。然后尝试

 HTTParty.post("#{@base_uri}/method/?argument1&api_key=#{@api_key}")

在这种情况下,ruby 将自动尝试将 @base_uri 和 @api_key 转换为字符串,因此无需显式调用 to_s 方法。