0

Rails 3.2アプリで単純なデータテーブルの実装を試みています。私はこの正確なアプリを PHP で動作させており、それを Ruby に移植したいと考えていました。私はRubyを学んでいるだけのエキスパートではありません。

私は基本的にこの例に従っていますが、コードとDBを使用しています

http://asciicasts.com/episodes/340-datatables

  • テーブルを作成し、クラスと ID を指定しました

  • このファイルを追加しました-> /app/assets/javascripts/products.js.coffee を含む

    jQuery -> $('#run-table').dataTable

      sPaginationType: "full_numbers"
      bServerSide: true
      iDisplayLength: 4
      aaSorting:[]
    

Web ページに表示されるのは、列、並べ替えアイコン、検索フィルター テキスト ボックス、ページ番号がすべて正しい、適切にフォーマットされた表です。しかし、うまくいきません。

「bServerSide: true」を実行すると、テーブルを操作するたびに

"NetworkError: 404 Not Found  - http://localhost:3000/null?sEcho=1&iColumns=11&sColumns=&iDisplayStart=0&iDisplayLength=4&...

そのため、検索フィルターを並べ替えたり追加したりすると、そのエラーが発生します。

「bServerSide: false」に変更すると、最初のデータをロードするが何もしない正しい外観のテーブルが得られます。ソートなし、フィルターなし、ページネーションなし。

私がしなかったそのサンプル コードの部分は、-> /app/datatables/products_datatable.rb でした。PHP では、サーバー側を使用せず、約 4 行のコードを使用してこれを機能させます。

必要に応じて、より多くのコード スニペットを提供できます。

4

2 に答える 2

0

これは、ビューのコードのバグでした。ループ内にtbodyを定義し、ループの上に移動する必要がありました。私が何時間も見つめていて、それを見なかった愚かなバグ。

これは今はうまくいきます

     <tbody>


<% @run.each do |c| %>

    <tr>

    <td><%= link_to c.idRun, step_url(c.idRun) -%>  </td>

    <td> <%= c.run_name %></td>
于 2012-11-15T13:48:57.677 に答える
0

"bServerSide" = true を使用している場合は、データベースからのデータの取得、並べ替え、フィルタリング、ページングのためのクエリの作成など、独自のサーバーサイド処理の実装に "sAjaxSource" を提供する必要があります。

それ以外の場合は、jquery データテーブルの初期化と同じ ID でテーブルを定義するだけで、フィルタリング、ソート、ページングをすぐに使用できます。

このような初期化は、サーバー側がなくても十分です。

 jQuery ->
 $('#tableid').dataTable
于 2012-11-14T15:54:26.333 に答える