我有一个发票的“collection_select”,我希望在选择发票时我会返回它的详细信息,然后在视图中绘制一个包含详细信息的表格。
我的问题是我不知道如何调用ajax嵌套表单的细节。
答案 0 :(得分:0)
您可以通过jquery
从collection_select获取invoice_id$.ajax({
url: '/invoice/' + $('#dropDownId').val(),
type: 'GET',
success: function(res){
$('#your_invoice_display_area').html(res);
}
})
在您的控制器中:
def show
@invoice = Invoice.find(params[:id])
respond_to do |format|
format.json {render json: @invoice, include: :invoice_items}
end
end
json数据将是这样的:
{"invoice":{"id":35,"bill_to":"Mr. X","address":"Address details","custom_date":"2017-07-05","subtotal":"5627.0","discount":null,"tax":null,"number":"INV_00035","created_at":"2017-04-05T16:52:04.071+06:00","updated_at":"2017-05-03T13:50:01.308+06:00","company":"Company Name","phone":"12345667","email":"email@gmail.com","billing_period":"","in_word":null,"total":"5627.0"}}
然后,在你的ajax调用的success函数中,你可以使用json绘制一个表。
首先,制作一个空表,为每个字段提供ID。然后使用jquery添加值。
success: function(res){
$("#bill_to").html(res["invoice"]["bill_to"]);
$("#address").html(res["invoice"]["address"]);
}
希望有所帮助。如果您需要更多帮助,请告诉我。