-1

私は次のことを実現したいと思っています。

選択ボックスを選択すると、次のようにAJAXを介してJSONオブジェクトをコントローラーに送信します。

        var encoded = $.param(data);            
        jQuery.ajax ({
            url: '/trips',
            type: 'GET',
            data: {'toSearch' : encoded},
            success: function (response) {
                //succes
                console.log(encoded);
            }
        });

そして、これらを私のクエリのパラメータとして使用します。

respond_to :json, :html

  def index
    @trips = Trip.scoped
    @trips.where("category_id = ?", params[:category_ids]) if params[:category_ids] # category_ids = array; select * from trips where category_id IN [1,3,4]


    respond_with @trips
  end

どうすればよいですか?そして、JSONオブジェクトをシリアル化するための最良の方法は何ですか?

4

1 に答える 1

0

次のことができます。

def index
  @trips = Trip.scoped
  @trips.where("category_id = ?", params[:category_ids]) if params[:category_ids] # category_ids = array; select * from trips where category_id IN [1,3,4]

  respond_to do |format|
    format.html # index.html.erb
    format.xml  { render :xml => @trips }
    format.json { render :json => @trips }
  end
end

次に、javascriptコールバックでやりたいことを何でもする必要があります。

編集

json形式だけが必要な場合は、次のようにすることができます。

render :json => @trips

Railsガイドのレイアウトとレンダリングも確認できます。

于 2012-11-01T17:17:19.323 に答える