I found a working solution reliably, without unforeseen problems.
$(document).ready -> initLeagueIndexDataTable() $(document).on 'pjax:end', -> initLeagueIndexDataTable() initLeagueIndexDataTable : -> if ($('#league_index').length > 0 && !$('#league_index_wrapper').length > 0) $('#league_index').dataTable({ 'sPaginationType': 'full_numbers', 'bJQueryUI': true, 'bProcessing': true, 'bServerSide': true, 'sAjaxSource': $('#league_index').data('source'), 'aoColumnDefs': [ { "bSortable": false, "aTargets": [ 1 ] }, { "bSortable": false, "aTargets": [ 2 ] }, { "bSortable": false, "aTargets": [ 3 ] }, { "bSortable": false, "aTargets": [ 4 ] }, { "bSortable": false, "aTargets": [ 5 ] } ], 'bFilter': false, 'iDisplayLength': 25, 'bDestroy': true })
source share