0

这是我的ajax调用

$.ajax({
    type: "GET",
    url: '/posts/product_list.json',
    data: {sub_cat_id: parseNumber(sub_category_id)},
    dataType: 'json',
    success: function(data) {
        //$('#selection').show();
        $('#selection').html(data.html);
    },
    error: function(data){
    }
});

我有 post_list 控制器

respond_to :json,only: :product_list
      def product_list
        @products = Product.where(sub_category_id: params[:sub_cat_id])
        ##blah blah blah
      end

我的网址在检查时显示如下product_list.json?sub_cat_id=5

但是调试器显示request parameter如下

{"sub_cat_id"=>"5", "action"=>"show", "controller"=>"posts", "id"=>"product_list", "format"=>"json"}

我很困惑为什么会发生这种情况,任何人都可以清除它。

4

1 回答 1

1

您似乎没有相应的路线条目。你应该有这样的东西在你的routes.rb

resources :posts do
  get :product_list, on: :collection
end

如果您只指定resources :posts,您的 GET 请求将与 for GET /posts/:id(查看 的输出rake routes)匹配,即with的show操作被解析为请求 URI 中的 id 参数。在这 7 个条目之后定义将使路由器将 URI 匹配到相应的操作和控制器。PostsControllerproduct_listget :product_list

于 2013-10-14T18:48:12.430 回答