将输入文本从text_field_tag传递为URL的变量...?

时间:2013-03-02 21:00:07

标签: ruby-on-rails ruby

好的,所以我真的不知道如何正确地说出来,但这里基本上就是我要做的。 我试图将用户输入的文本放入我的搜索框并将其传递给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 %>

我知道这可能是一件容易的事,但我似乎无法找到正确的方法。谢谢你的帮助!

1 个答案:

答案 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吗?

我只是想让你知道如何解决这个问题,而不是最终解决方案。