2016-11-26 6 views
0

悪いタイトルを残して申し訳ありません。私はRailsとJavascriptの新機能です。私は、JSONファイルへの単一のajax呼び出しを使用して、DataTablesドキュメンテーションの後の子行を使用してDataTableをセットアップしました。RailsとDataTable JSONドキュメントを渡す方法

私はこれで全てのRailsコントローラを使ってMongo DBからJSONを取得したいと思っています。私もその部分が働いています。私が混乱しているのはおそらく非常にシンプルで、アクティブなレコードを持つRailsテーブルを作成するのに慣れていますが、ここでは、私のDataTable定義とajax呼び出しを使ってtests.jsというjavascriptを別に用意しました。ビューからJSONをそのまま渡すことはできますか?私は今、私のビューからVARようにしたいと思い、私は今、私のコントローラ

$(document).ready(function() { 
var table = $('#queryone_table').DataTable({ 
    "ajax": "/objects.txt", 
    "columns": [ 
     { 
      "className":  'details-control', 
      "orderable":  false, 
      "data":   null, 
      "defaultContent": '' 
     }, 
     { "data": "transactionType" }, 
     { "data": "collationId" }, 
     { "data": "licensePlate" }, 
     { "data": "description" }, 
     { "data": "startDate" }, 
     { "data": "FeedComplete" }, 
     { "data": "RepoComplete" }, 
     { "data": "feedProcessingDuration" }, 
     { "data": "completeDuration" } 
    ], 
    "order": [[1, 'asc']] 
}); 

Objects.txt私から持ってJSONを使用するAJAX呼び出しからの切り替え方法がわからないのですか?アクティブなレコードとMySQLでは、コントローラからのデータセットをループするビューでテーブルを構築しますが、子行のコードはすでにjavascriptで行いましたが、残したいと思います。

完全なJavaScriptコード

$(document).ready(function() { 
    var table = $('#queryone_table').DataTable({ 
     "ajax": "/objects.txt", 
     "columns": [ 
      { 
       "className":  'details-control', 
       "orderable":  false, 
       "data":   null, 
       "defaultContent": '' 
      }, 
      { "data": "transactionType" }, 
      { "data": "collationId" }, 
      { "data": "licensePlate" }, 
      { "data": "description" }, 
      { "data": "startDate" }, 
      { "data": "FeedComplete" }, 
      { "data": "RepoComplete" }, 
      { "data": "feedProcessingDuration" }, 
      { "data": "completeDuration" } 
     ], 
     "order": [[1, 'asc']] 
    }); 


    // Add event listener for opening and closing details 
    $('#queryone_table tbody').on('click', 'td.details-control', function() { 
     var tr = $(this).closest('tr'); 
     var row = table.row(tr); 

     if (row.child.isShown()) { 
      // This row is already open - close it 
      row.child.hide(); 
      tr.removeClass('shown'); 
     } 
     else { 
      // Open this row 
      row.child(format(row.data())).show(); 

      tr.addClass('shown'); 

     } 
    }); 

}); 


function format (d) { 
    var foo = '<table id="queryinner_table" cellpadding="5" cellspacing="2" border="1" style="padding-left:50px;" class="table table-striped table-bordered table-hover table-condensed dataTable no-footer sub-table">'; 
    // loop over table rows 
    var trow = ""; 
    for (var i=0; i< d.nextrow.length; i++) { 

     var foo2 = '<tr>'+ 
        '<td>Transaction Step:</td>'+ 
        '<td>'+d.nextrow[i].transactionStep+'</td>'+ 
        '<td>'+d.nextrow[i].elapsedSeconds+'</td>'+ 
        '</tr>' 
     trow = trow + foo2 

    } //for loop 

    var foo2 = '</table>'; 
    var res = foo.concat(trow); 
    res = res.concat(foo2); 

    return res; 
    } 
+0

私はよく分かりません。データベースからデータテーブルにデータを渡す必要がありますか? – inye

答えて

0

これは悪い私は新しいプロジェクトを開始していると、そのコードに基づいて、いくつか質問をしてではなく、この1を書き換えます言葉で表現されました。

関連する問題