如何从CSV格式的JSON可以通过jQuery的数据表插件被解析

问题描述 投票:0回答:1

我与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元素内显示英寸

任何帮助将不胜感激。谢谢。

ruby-on-rails json ruby csv datatables
1个回答
1
投票

你检查你在scene得到什么价值。我觉得你的DataTable期待一个数组,而是获得一个物体或为零。尝试类似dataSrc:''选项,在阿贾克斯定义,以便数据表知道要期待一个数组,而不是一个对象,并确保您的AJAX数据源(var scene = $("#data-table-id").val();在这种情况下,我猜)是不为零。

另外,最佳实践和更好的选择见ajax options

© www.soinside.com 2019 - 2024. All rights reserved.