【问题标题】:Displaying data when searching through external API通过外部 API 搜索时显示数据
【发布时间】:2016-03-26 16:57:21
【问题描述】:

因此,我正在尝试通过外部 API (Nutrionix) 进行搜索,但无法弄清楚如何显示结果。

我目前有一个搜索表格

<form action = "/foods" method = "get">
  <div class = "field">
    <input type = "text" name = "searched_value" alt = "Search Foods" />
  </div>
  <div class = "btn">
    <input type = "submit" name ="btn" value = "Search Foods">
  </div>
</form>

然后我的 FoodsController 中有:

class FoodsController < ApplicationController
  require 'faraday'
  require 'json'

  def search
    @searched_food = params[:searched_value].split(" ").join("%20")
    @response_body = Faraday.get("https://api.nutritionix.com/v1_1/search/#{@searched_value}?format=json?fields=item_name%2Citem_id%2Cbrand_name%2Cnf_calories%2Cnf_total_fat&appId=[MYAPPID]&appKey=[MYAPPKEY]").body
    @parsed_response = JSON.load(@response_body)
  end
end

我的相关路线是:

Rails.application.routes.draw do
  get 'food_form'  =>   'foods#food_form'
  get 'foods'       => 'foods#foods'
  get 'search'     =>     'foods#search'
end

然后它会返回链接到“添加食物”页面的页面,我目前只是想显示一些东西,所以我有:

<div class = "description">
  <%= link_to "Add foods", food_form_path %>
  <%= @parsed_response%>
  <%= @response_body%>
  <%= @searched_food %>
</div>

我目前没有得到任何结果,因为只显示了表单的链接。但是,当我将控制器信息放在 html 页面上时,我可以看到结果,如果我自己访问 nutrionix 链接,我会得到结果。

我们将不胜感激。 :)

【问题讨论】:

  • 你的问题是什么?搜索表单从来没有用过吗?
  • 搜索表单似乎没有产生结果,即使我只是直接在控制器中的页面上显示数据,也会出现数据。我不确定如何使数据在搜索后显示在页面上。 @帕万

标签: ruby-on-rails ruby api faraday


【解决方案1】:

搜索表单 没有达到应有的操作,因为它有action = "/foods",应该是action = "/foods/search"。更改它应该可以解决您的问题。

<form action = "/foods/search" method = "get">
  <div class = "field">
    <input type = "text" name = "searched_value" alt = "Search Foods" />
  </div>
  <div class = "btn">
    <input type = "submit" name ="btn" value = "Search Foods">
  </div>
</form>

【讨论】:

  • 啊,是的,我之前尝试过,但它告诉我错误:没有路线匹配 [GET]“/foods/search”。我在上面的问题中添加了路线。
  • @Nerl 试试action = "/search"
  • 由于某种原因,当我这样做时,它会将其视为 /foods/search,因此它给了我 No route matches [GET] "/foods/search"
猜你喜欢
  • 2023-03-16
  • 1970-01-01
  • 2020-07-06
  • 1970-01-01
  • 2014-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-18
相关资源
最近更新 更多