【发布时间】:2016-06-05 04:21:29
【问题描述】:
我认为 (sales.html.erb):
$('#Comprar').click(function(){
var table = tableToJson();
if (table.length == 0)
alert("No hay productos para comprar");
else {
// alert(JSON.stringify(table));
$.ajax({
url: "<%= products_sales_path %>",
type: "GET",
dataType: "json",
data: JSON.stringify(table),
complete: function() {
alert("Done!");
}
});
}
});
tableToJson() 是一个函数,它从已经格式化为 JSON Image 的表中返回某些信息。 products_sales_path 是sales.html.erb 的查看路线。但是,我不确定如何使用 $.ajax() 方法将 JSON 发送到 rails 服务器并进行渲染。我的控制器中有这个(products_controller.rb):
def sales
if request.xhr?
render :json => @product
else
@products = Product.all
filter = params[:search]
if filter.blank?
@products = Product.all
else
@products=Product.where("lower(nombre) LIKE ? OR lower(presentacion) LIKE ?", "%#{params[:search].downcase}%", "%#{params[:search].downcase}%")
end
end
end
我认为render :json => @product 可以满足我的需要,但它不起作用!而且我还想不通。感谢您的帮助。
【问题讨论】:
-
如果您执行
p @product,您会在控制台中看到什么? -
我应该在哪里写这个?在控制器中?如果是这样,在控制台中并没有什么特别的,只是:
GET XHR http://localhost:3000/products/sales [HTTP/1.1 304 Not Modified 8ms] GET XHR http://localhost:3000/products/sales -
我必须假设它没有被调用,因为没有任何可能是实例变量的东西出现在你的控制台中。也许检查 if 语句?
标签: ruby-on-rails json ajax