我正在使用HTTParty gem,Rails 5和" httplog"宝石。
我使用" httplog"跟踪我的HTTP请求。 gem和我收到了正确的JSON响应。因此,我认为我的问题正在我看来。我正在从模型中正确访问API。我根据HTTP日志在控制器中正确使用它。我只是在视线和控制器之间的某处徘徊。
我得到了一个"未定义的方法`每个' for nil:访问API时出现NilClass" 错误。
以下是API的示例回复:
{
"result_count": 8132,
"page_size": 250,
"current_page": 1,
"total_pages": 33,
"api_call_credits": 1,
"data": [
{
"ticker": "A",
"name": "Agilent Technologies Inc",
"lei": "QUIX8Y7A2WP0XRMW7G29",
"cik": "0001090872",
"latest_filing_date": "2017-02-06"
}
这是我的模特:
class Finance < ApplicationRecord
include HTTParty
def self.response
auth = {
username: "username",
password: "password"
}
options = { basic_auth: auth }
data_url = "https://api.intrinio.com/companies?ticker=AAPL"
HTTParty.get(data_url, options)
end
end
我的控制器:
class FinancesController < ApplicationController
def index
@response = Finance.response
end
end
我的观点:
<% @response["data"].each do |data| %>
<p><%= data["name"]%></p>
<p><%= data["ticker"]%></p>
<% end %>
&#13;
答案 0 :(得分:0)
我从来没有使用过HTTP派对,但是我没有看到你回归的任何地方&#34;响应的主体,通常你需要像
这样的东西response = HTTParty.get(data_url, options)
response.body # being this the actual json response
如果有效,你可以直接这个
HTTParty.get(data_url, options).body
答案 1 :(得分:0)
尝试使用parsed_response
的 HTTParty::Response
方法(这是您的请求的回复)。
HTTParty.get(url, data).parsed_response