【问题标题】: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"
    

    在路由文件中 但我确信这不是最佳做法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      • 2016-11-09
      • 1970-01-01
      • 2013-05-06
      • 1970-01-01
      相关资源
      最近更新 更多