Получить ввод из формы для запроса URL-адреса API в rails?

#ruby-on-rails #api #weather-api

#ruby-on-rails #API #погода-api

Вопрос:

Я новичок в Rails, и я пытаюсь создать простой погодный API для получения погоды по почтовому индексу есть ли способ получить почтовый индекс из пользовательского ввода из простой формы, это будет просто для обучения, поэтому я не пытаюсь заставить пользователей разрабатывать или моделировать пользователей

 require 'net/http'
    require 'json'
    @url = 'http://api.openweathermap.org/data/2.5/weather?zip=#{zipcode}amp;appid=APIKEY'
    @uri = URI(@url)
    @response = Net::HTTP.get(@uri) 
    @output = JSON.parse(@response)

 

Ответ №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  'amp;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"
 

в файле маршрутов
, но я уверен, что это не лучшая практика