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

これは優れたソリューションではなく、最も賢いソリューションでもありません。レールスタックを使用してコードを複製するだけです。あなたの質問は、APIによって返された日付で何をしたいのかについて多くの情報を提供していませんか?本当に指定されたURLにリダイレクトして、データをjsonとして表示したいですか?

私は、この問題に取り組む方法について別のアイデアを提供しようとしていますが、それは最終的な解決策ではありません。

于 2013-03-02T22:32:08.383 に答える