我刚开始使用Ruby on Rails进行开发,而且我一直坚持一个小项目,我一直在努力更好地理解RoR。我试图创建一个小天气网站,我无法通过控制器将用户输入发送到模型,并让该模型使用发回正确的信息,以便我可以解析它,什么不是。到目前为止,我还没有将用户参数发送到控制器,以便它发出正确的请求。这是我的以下代码:
hourly.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
非常感谢您对一些优秀示例或教程的任何帮助或指示。感谢
答案 0 :(得分: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