如何在 Rails 中显示我的搜索结果?
Posted
技术标签:
【中文标题】如何在 Rails 中显示我的搜索结果?【英文标题】:How can I display my search results in rails? 【发布时间】:2021-12-10 19:35:57 【问题描述】:当我在字段中写入城市并单击按钮时,页面上必须是该城市的名称和另一个。就我而言,每次的名字都是纽约。当我写例如拉斯维加斯时,我的链接是http://localhost:3000/?query=Las+Vegas&commit=Search
,页面上的数据是关于纽约的。
class HomeController < ApplicationController
def index
require 'net/http'
require 'json'
@params =
:access_key => "1dbc1a3aa6b2e76a0c8eda1cba0c9c8b",
:query => "New York"
@uri = URI("http://api.weatherstack.com/current?access_key=1dbc1a3aa6b2e76a0c8eda1cba0c9c8b&query=#@params[:query]")
@uri.query = URI.encode_www_form(@params)
@json = Net::HTTP.get(@uri)
@api_response = JSON.parse(@json)
if @params[:query].empty?
@city = "Enter city"
@temperature = "(in English)"
else
@city = " #@api_response['location']['name']"
@temperature = "#@api_response['current']['temperature']°"
end
end
end
routes.rb
Rails.application.routes.draw do
root 'home#index', :as => 'search'
end
index.html.erb
<div class="main">
<h1 class="weather">Weather</h1>
<%= form_with(url: search_path, method: "get", local: true) do %>
<%= text_field_tag(:query) %>
<%= submit_tag("Search",class: "btn btn-primary") %>
<% end %>
<div class="city"> <h1><%= @city %> <h5><%= @temperature %></h5></h1> </div>
</div>
【问题讨论】:
【参考方案1】:看起来您在参数中硬编码了纽约。
@params =
:access_key => "1dbc1a3aa6b2e76a0c8eda1cba0c9c8b",
:query => "New York"
所以你需要把它改成这样:
@params =
:access_key => "1dbc1a3aa6b2e76a0c8eda1cba0c9c8b",
:query => params[:query]
【讨论】:
以上是关于如何在 Rails 中显示我的搜索结果?的主要内容,如果未能解决你的问题,请参考以下文章