我在我看来(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
可以做我需要的但它不起作用!我还没弄明白。谢谢你的帮助。
答案 0 :(得分:0)
请检查此格式:
render :json => { :success => true,:product => @product.as_json() }
答案 1 :(得分:0)
您可以使用$.ajax
或$.get
进行申请。
<强> JS:强>
$(document).ready(function() {
$('#Comprar').click(function(){
var table = tableToJson();
if (table.length == 0){
alert("No hay productos para comprar");
} else {
$.get("<%= products_sales_path %>", function( data ) {
// alert("Done");
console.log("Data: ", data);
}, "json" );
}
});
})
<强>控制器:强>
def sales
@products = Product.all
if request.xhr?
render status: 200, json: {
products: @products
}.to_json
else
@products = params[:search].blank? ? @products : Product.where("lower(nombre) LIKE ? OR lower(presentacion) LIKE ?", "%#{params[:search].downcase}%", "%#{params[:search].downcase}%")
end
end