2017-02-06 6 views
0

私はYelp APIを使用しています。私はブートストラップのnavbarを持っています。ユーザーは、Yelpの結果をどの都市に書きたいのですか?しかし、現在のところ、ユーザーは自分の都合の良い都市を入力することはできません。プログラマーとしては私だけです。ここにコントローラがあります:navbar(bootsrap)のユーザー入力をコントローラに渡すにはどうすればよいですか?

class SearchesController < ApplicationController 

    def index 

    end 

    def search 
    parameters = { term: params[:term], limit: 16 } 
    render json: Yelp.client.search('London', parameters) 
    end 
end 

ご覧のとおり、ユーザーがロンドンに行きたい場合は、コントローラに「London」と入力する必要があります。しかし、私はこの責任を取るためにnavbarからのユーザー入力をしたい。ここで

は私_navbar.html.erbのためのコードは次のとおりです。

<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 
    <form class="navbar-form navbar-left"> 
    <div class="form-group"> 
     <input type="text" class="form-control" placeholder="Which city?"> 
    </div> 
    <button type="submit" class="btn btn-default">Search</button> 
    </form> 
</div> 

答えて

0

の検索フォームはあなたのコントローラでエンドポイントにPOSTする必要があります。 「検索」アクションがあり、URLからパラメータを取得できます。デフォルトで持っているフォームタグは、クエリパラメータをプッシュしようとします。これは検索語です。

あなたは近くにいます。

+0

フォームとコントローラーの例を教えてもらえますか? – mmcderm8

0

ハッシュで受信できるように、フォーム入力にはname属性が必要です。

<input type="text" class="form-control" placeholder="Which city?" name="search"> 

フォームはあなたが今のフォームを送信するときにも

<form action="/searches/search" class="navbar-form navbar-left"> 

どこへ行くかを知る必要があり、あなたのparamsハッシュの内側に自分のコントローラに送信された結果を取得します。あなたはその後、

Yelp.client.search(parmas[:search], parameters) 

Hereにレンダリング更新でき

は、リクエストがどのように働くかについてかなり良いチュートリアルです。

関連する問題