0

我正在尝试使用 simple_datatables gem,但文档不是很清楚。

当我在浏览器中加载 search.datatables 和 search.html 时,我得到 JSON 内容,但是当我使用我的索引视图时,我的表没有被填充。

我已经使用以下内容创建了 app/views/trades/search.jsonify:

@trades.each do |t|
  json << [
    t.tddt,
    ... # omitted for brevity
    t.sdbk,
  ]
end

我已将“搜索”控制器操作添加到我的 TradesController:

respond_to :html, :datatables

def search
  @trades = Trade.search(params[:search])
  respond_with @trades
end

def index
  respond_to do |format|
    format.html # index.html.erb
  end
end

同样,如文档所示,我已将此 javascript 添加到我的 app/views/index.html.erb 中:

<script type="text/javascript">

$("#trades_tbl").dataTable({
    "sAjaxSource" : "/trades/search.datatables",
    "aaSorting" : [[0,'asc']],
    "aoColumns" : [
      {"sName":"tddt"},
      ... // again omitted for brevity
      {"sName":"sdbk"},
    ],
    "bServerSide"  : true,
    "fnServerData" : simpleDatatables
  });

</script>

这是同一个文件中的表格:

<table id="trades_tbl">
  <thead>
    <tr>
      <th>Tddt</th>
      <!-- more columns omitted for brevity -->
      <th>Sdbk</th>
    </tr>
  </thead>

  <tbody/>
</table>

那么我错过了什么?为什么javascript没有加载我的表?

谢谢。

注意:如果有 1500+ 名声的人愿意创建一个 simple_datatables 标签,我认为那将是一件好事。

4

1 回答 1

0

我有几个想法:

为了确认,您将以下内容添加到您的 application.js 资产管道清单文件中:

//= require simple_datatables

并重新启动网络服务器?

另一个可能的障碍是 index.html 中的 javascript 在文档加载完成之前执行,您可能希望将 index.html 中的 javascript 包装在 $(document).ready 回调中,如下所示:

$(document).ready(function(){
  $("#trades_tbl").dataTable({
    ....
  });
});

最后的想法:Web 浏览器开发控制台是否表明发生了任何 javascript 错误?如果是这样,您可能需要解决这些问题。

于 2012-08-15T05:29:35.400 回答