外部API(Nutrionix)を検索しようとしていて、結果を表示する方法がわかりません。外部APIで検索する際にデータを表示する
私は現在、それから私は私のFoodsControllerに
<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>
を検索するためのフォームを持っています
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リンクに行くと結果が得られます。
助けていただければ幸いです。それはaction = "/foods/search"
あるべきaction = "/foods"
を持っているので、:)
あなたの問題は何ですか?検索フォームは機能しませんでしたか? – Pavan
コントローラにあるページに直接データを表示してもデータが表示されても、検索フォームに結果が表示されないようです。私はどのようにデータが検索された後にページに表示されるようにするかわかりません。 @Pavan – Nerl