Я работаю с Rails и плагином jQuery Datatables, где я пытаюсь отобразить данные из CSV в представлении.Количество столбцов и строк варьируется от файла к файлу, и использование только одного представления отлично работает для файлов меньшего размера, но все, что больше, очевидно, займет некоторое время для загрузки страницы и последующего плагина jQuery (мне требуется функциональность разбиения на страницы).Поэтому я изменил попытку передачи значений td в Datatables с помощью его функций рендеринга ajax / serverSide.Проблема, с которой я сейчас имею дело, заключается в том, что я постоянно получаю ответ «Uncaught TypeError: Невозможно прочитать свойство 'length' с неопределенным значением".
В настоящее время я использую этот код для анализа 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
Вот как я установил DataTables:
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.
Любая помощь будет принята с благодарностью.Спасибо.