【问题标题】:Get Input from form for API url Request in rails?在rails中从表单获取API url请求的输入?
【发布时间】:2020-11-25 23:41:06
【问题描述】:
我是 Rails 新手,我正在尝试制作一个简单的天气 API 来通过邮政编码获取天气
有没有办法从一个简单的表单中获取用户输入的邮政编码,这只是为了学习,所以我不想让用户设计或用户模型
require 'net/http'
require 'json'
@url = 'http://api.openweathermap.org/data/2.5/weather?zip=#{zipcode}&appid=APIKEY'
@uri = URI(@url)
@response = Net::HTTP.get(@uri)
@output = JSON.parse(@response)
【问题讨论】:
标签:
ruby-on-rails
api
weather-api
【解决方案1】:
其实我想通了,我需要补充一下
def zipcode
@zip_query = params[:zipcode]
if params[:zipcode] == ""
@zip_query = "Hey you forgot to enter a zipcode!"
elsif params[:zipcode]
# Do Api stuff
require 'net/http'
require 'json'
@url = 'http://api.openweathermap.org/data/2.5/weather?zip='+ @zip_query +'&appid=APIKEY'
@uri = URI(@url)
@response = Net::HTTP.get(@uri)
@output = JSON.parse(@response)
@name = @output['name']
# Check for empty return result
if @output.empty?
@final_output = "Error"
elsif !@output
@final_output = "Error"
else
@final_output = ((@output['main']['temp'] - 273.15) * 9/5 +32).round(2)
end
end
end
在 controller.rb 文件中
并添加
post "zipcode" => 'home#zipcode'
get "home/zipcode"
在路由文件中
但我确信这不是最佳做法