1

好的,所以我真的不知道如何正确表达这个词,但这基本上就是我想要做的。我正在尝试将用户输入到我的搜索框中的文本传递给 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 %>

我知道这可能是一件很容易的事情,但我似乎找不到任何方法来正确地做到这一点。谢谢你的帮助!

4

1 回答 1

2

看起来您正在尝试根据用户输入将表单提交重定向到不同的 url。

我没有JavaScript的建议是通过您自己的控制器和 redirect_to 自定义 url。像这样的东西:

将您的视图更改为:

<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 stack 复制您的代码。你的问题没有提供很多关于你想用 api 返回的日期做什么的信息?您真的想简单地重定向到给定的 url 并将数据视为 json 吗?

我只是想给你另一个想法如何解决这个问题,它不是最终的解决方案。

于 2013-03-02T22:32:08.383 回答