好的,所以我真的不知道如何正确地说出来,但这里基本上就是我要做的。 我试图将用户输入的文本放入我的搜索框并将其传递给URL。 到目前为止,这是我的观看页面:
<h1>What's the weather like by you?</h1>
<br />
<%= form_tag('http://api.wunderground.com/api/myAPIkey/conditions/q/**USER_TEXT_FROM_TEXT_FIELD_TAG**.json',:method =>
'get') do %>
<p>
<%= text_field_tag 'zipcode', params[:search] %>
<%= submit_tag "Check It Out!", :name => nil %>
</p>
<% end %>
我知道这可能是一件容易的事,但我似乎无法找到正确的方法。谢谢你的帮助!
答案 0 :(得分:2)
看起来您正在尝试根据用户输入将表单提交重定向到不同的URL。
我的 JavaScript 消息将通过您自己的控制器和redirect_to自定义网址。像这样:
将您的观点更改为:
<h1>What's the weather like by you?</h1>
<br />
<%= form_tag('/weather') do %>
<p>
<%= text_field_tag 'zipcode' %>
<%= submit_tag "Check It Out!", :name => nil %>
</p>
<% end %>
创建天气控制器:
rails g controller weather create
将此行添加到config / route.rb文件中:
match 'weather' => 'weather#create', via: :post
并修改app / controllers / weather_controller.rb,如下所示:
class WeatherController < ApplicationController
def create
redirect_to "http://api.wunderground.com/api/myAPIkey/conditions/q/#{params[:zipcode].split.join('+')}.json"
end
end
这不是一个好的解决方案,它不是最聪明的解决方案,它只是使用rails堆栈复制代码。你的问题没有提供很多关于api返回日期的信息吗?你真的想简单地重定向到给定的URL并将数据看作json吗?
我只是想让你知道如何解决这个问题,而不是最终解决方案。