2013-03-02 19 views
1

好吧,所以我不知道如何正確說出這些,但這裏基本上是我正在嘗試做的。 我正在嘗試將用戶輸入的文本放入我的搜索框並將其傳遞到URL。 這是到目前爲止我的看法頁:將來自text_field_tag的輸入文本作爲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

您將需要使用JavaScript來觀察字段更改並在更改URL時進行更新。你有沒有考慮過? – 2013-03-02 21:36:08

+0

@Beerlington你能提供一些關於如何做的代碼示例嗎?我明白你在說什麼,只是不知道如何實施它......謝謝! – jkrejci 2013-03-02 22:06:45

回答

2

它看起來像你試圖根據用戶輸入重定向表單提交到不同的網址。

我的沒有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堆棧重複您的代碼。你的問題沒有提供很多關於你想用api返回的日期的信息?你真的只想重定向到給定的網址,並看到數據爲JSON?

我只是試圖給你另一個想法如何解決這個問題,它不是最終的解決方案。

+0

完全奏效。非常感謝,男人! – jkrejci 2013-03-02 23:43:03

+0

我打算在重定向之後解析數據,我希望我能弄清楚,然後製作一個很好看的頁面來顯示解析的天氣數據。 – jkrejci 2013-03-02 23:54:28

+0

你不能在重定向後解析它,你必須在重定向之前進行解析。簡單的步驟將涉及從給定的URL獲取數據並將其保存在實例變量**中,然後** redirect_to顯示操作,然後在視圖中很好地格式化它。查看[rails教程](http://ruby.railstutorial.org/ruby-on-rails-tutorial-book)瞭解一個很好的例子。 – Kocur4d 2013-03-03 00:11:22

相關問題