我与Rails和在那里我想从视图中的CSV数据显示jQuery的数据表插件工作。列和行的数量从文件变化到文件中,单独依靠视图较小的文件完美的作品,但是更大的东西显然需要一段时间的网页,随后的jQuery插件加载(我需要分页功能)。我有,因此,改为试图通过它的AJAX /服务器端渲染功能,通过TD值数据表。我目前正在处理的问题是,我不断地得到了响应“遗漏的类型错误:无法读取属性未定义的‘长’”。
我目前使用此代码来解析出CSV文件,并从控制器发送:
json_hash = CSV.parse(csv_file, headers: true)
json_hash = JSON.pretty_generate(json_hash.drop(1).map(&:to_h), {object_nl: '', indent: ' '})
respond_to do |format|
format.csv {send_data csv_file, filename: scenario+".csv"}
format.json { render json: json_hash }
end
这里是我有数据表设置:
var scene = $("#data-table-id").val();
var table = $('#data-viz-table').DataTable({
searching: false,
bServerSide: true,
deferRender: true,
scrollCollapse: true,
bProcessing: true,
sAjaxSource: '/data_model/export_csv/' + scene,
order: [],
"columnDefs": [
{ "orderable": false, "targets": "_all" }
]
});
我在该响应的网络选项卡检查,以及控制台记录数据,一切都至少“看起来不错”据格式,但我完全失去了以什么我需要做的就是TD项目tbody元素内显示英寸
任何帮助将不胜感激。谢谢。
你检查你在scene
得到什么价值。我觉得你的DataTable期待一个数组,而是获得一个物体或为零。尝试类似dataSrc:''
选项,在阿贾克斯定义,以便数据表知道要期待一个数组,而不是一个对象,并确保您的AJAX数据源(var scene = $("#data-table-id").val();
在这种情况下,我猜)是不为零。
另外,最佳实践和更好的选择见ajax options。