如何修复错误的URI(在rails上的ruby中不是URI?在URI中传递变量作为参数

时间:2015-10-13 07:51:49

标签: ruby-on-rails ruby json api

获取肯塔基州(KY)州和“默里”城市的天气报告的URI(替换apikey)

http://api.wunderground.com/api/apikey/conditions/q/KY/murray.json

我想使用输入框输入状态(例如:KY)和城市,并将它们作为变量传递给URI,以便我可以根据用户的选择使页面动态化,因此尝试将URI修改为:< / p>

http://api.wunderground.com/api/apikey/conditions/q/# {状态} / {#}城市上传.json

我无法将变量作为参数传递给此api URI并收到错误

“错误的URI(不是URI?):

我的weather.erb文件内容(部分代码):

<% provide(:title, "Weather") %>
<h1>Weather Forecast</h1>
  <%=form_tag  do%>
  <%=label_tag 'Enter State (Eg:KY)'%>
  <%=text_field_tag 'state'%><br>
  <%=label_tag 'Enter City (Eg:Murray)'%>
  <%=text_field_tag 'city'%><br>
  <%=submit_tag 'submit '%>
  <%end%>


<% 
city = yield(:city).strip
state = yield(:state).strip
require 'open-uri'
require 'json'
open('http://api.wunderground.com/api/apikey/conditions/q/#{state}/#{city}.json') do |f|
..........
........
.....
%>

我完成了修改路由,application_controller并坚持这一点。

1 个答案:

答案 0 :(得分:2)

替换

'http://api.wunderground.com/api/apikey/conditions/q/#{state}/#{city}.json'

"http://api.wunderground.com/api/apikey/conditions/q/#{state}/#{city}.json"

由于单引号不插入变量。