-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

您还可以查看Layouts and Rendering in Rails指南。

于 2012-11-01T17:17:19.323 回答