1

我是使用 Ruby on Rails 进行开发的新手,我一直致力于一个小项目,我一直在致力于更好地理解 RoR。我正在尝试制作一个小型天气网站,但我无法通过控制器将用户输入发送到模型,并让该模型使用发送回正确的信息,以便我可以解析它,而不是什么。到目前为止,我还无法将用户参数发送到控制器,以便它发出正确的请求。这是我的以下代码:

每小时.html.erb:

 <%= form_tag('/show') do %>
        <%= label_tag(:location, "Enter in your city name:") %>
        <%= text_field_tag(:location) %>
    <br />
    <%= submit_tag "Check It Out!", class: 'btn btn-primary' %>
 <% end %>

hourly_lookup_controller.rb:

class HourlyLookupController < ApplicationController

    def show
        @hourly_lookup = HourlyLookup.new(params[:location])
    end
end

hourly_lookup.rb:

class HourlyLookup

    def fetch_weather
        HTTParty.get("http://api.wunderground.com/api/api-key/hourly/q/CA/#{:location}.xml")
    end

    def initialize
      weather_hash = fetch_weather
      assign_values(weather_hash)
    end

    def assign_values(weather_hash)

       more code....

    end
end

对于一些好的示例或教程的任何帮助或指导将不胜感激。谢谢

4

1 回答 1

1

如果您想将变量发送到 HourlyLookup,您需要这样做:

class HourlyLookupController < ApplicationController

  def show
    @hourly_lookup = HourlyLookup.new(params[:location])
    @hourly_lookup.fetch_weather
  end
end

class HourlyLookup

  attr_reader :location

  def initialize(location)
    @location = location
   end

  def fetch_weather
    response = HTTParty.get("http://api.wunderground.com/api/cdb75d07a23ad227/hourly/q/CA/#{location}.xml")
    parse_response(response)
  end

  def parse_response(response)
    #parse the things
  end
end
于 2013-04-22T02:32:15.730 回答