0

我一直致力于为工作板创建 CLI gem。我一直在设置我的 API 类,但我一直在努力让它在成功调用方面正常工作;我正在使用 HTTParty 进行解析。当我对此进行测试时,它不断给我一个“[]”的方法错误。我已经检查了所有内容,确保语法正确,但在弄清楚什么似乎打破了这一点时遇到了困难。这是我创建的列出特定板上所有工作的方法:

def all_jobs_call
  url = "https://boards-api.greenhouse.io/v1/boards/flatironschoolcareers/jobs"
  response = HTTParty.get(url)
  response["absolute_url"]["location"]["metadata"]["id"]["title"].each do |job|
    absolute_url = job["absolute_url"]
    location = job["location"]
    metadata = job["metadata"]
    id = job["id"]
    title = job["title"]
  end
end

我将不胜感激任何关于我可能做错了什么或者我是否遗漏了一些明显的东西的见解。谢谢!

4

1 回答 1

1

您从https://boards-api.greenhouse.io/v1/boards/flatironschoolcareers/jobs获得的 JSON 响应如下所示:

{
  "jobs": [
    {
      "absolute_url": "https://boards.greenhouse.io/flatironschoolcareers/jobs/4460392002",
      "internal_job_id": 4375855002,
      "location": {
        "name": "New York, NY"
      },
      "metadata": [
        {
          "id": 4019377002,
          "name": "Employment Type",
          "value": "Full-time",
          "value_type": "single_select"
        },
      ...

HTTParty 将该响应转换为 Ruby 对象。所以就像在那个 JSON 响应中一样,有一个包含一系列作业response的顶级键。"jobs"

为了获得您将使用的第一份工作:

response["jobs"][0]
#=> {"absolute_url"=>"https://boa...", "internal_job_id"=>4375855002, ...}

并得到它absolute_url

response["jobs"][0]["absolute_url"]
#=> "https://boards.greenhouse.io/flatironschoolcareers/jobs/4460392002"

并遍历您在数组上调用的所有作业each,即:

response["jobs"].each do |job|
  puts job["absolute_url"]
end

输出:

https://boards.greenhouse.io/flatironschoolcareers/jobs/4460392002
https://boards.greenhouse.io/flatironschoolcareers/jobs/4460383002
https://boards.greenhouse.io/flatironschoolcareers/jobs/4472889002
...
于 2019-11-25T08:40:42.407 回答