Rails 4 - 带有分页的DataTable

时间:2016-10-20 03:34:38

标签: jquery ruby-on-rails pagination datatables

我正在尝试使用我的rails应用程序中的分页工作来获取可排序的html表。但我没有做任何事情。

我使用的是rails 4.2.4和基础6。

我已按照所有步骤进行操作

  

此处:https://github.com/rweng/jquery-datatables-rails

     

此处:https://datatables.net

     

此处:http://datatables.net/dev/foundation.html

这些中的每一个都让看起来让这种运行变得非常简单。

我有以下内容:

Gemfile:

gem 'jquery-datatables-rails', '~> 3.4.0'

的application.js:

//= require jquery
//= require jquery_ujs
//= require dataTables/jquery.dataTables
//= require dataTables/jquery.dataTables.foundation
//= require jquery-ui
//= require autocomplete-rails
//= require foundation
//= require turbolinks
//= require_tree .

$(function(){ 
    $(document).foundation(); 
});

在我看来,我有:

<script>
  $(document).ready(function() {
    $('#jobsTable').dataTable();
  } );
</script>

<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/zf/jq-2.2.3/dt-1.10.12/datatables.min.css"/>

<script type="text/javascript" src="https://cdn.datatables.net/v/zf/jq-2.2.3/dt-1.10.12/datatables.min.js"></script>

<table id="jobsTable">
  <thead>
    <tr>
      <th>Job ID</th>
      <th>Created On</th>
      <th>User</th>
      <th>Company</th>
      <th>Subcontractor</th>
      <th>Jobsite</th>
      <th colspan="2"></th>
    </tr>
  </thead>

  <tbody>
    <% @jobs.each do |job| %>
      <tr>
        <td><%= job.id %> </td>
        <td><%= job.date.strftime("%I:%M %p, %b %d %Y") %></td>
        <td><%= job.user.username %></td>
        <% if job.company %>
          <td><%= job.company.name %></td>
        <% else %>
          <td> N/A </td>
        <% end %>
        <% if job.subcontractor %>
          <td><%= job.subcontractor.name %></td>
        <% else %>
          <td> N/A </td>
        <% end %>
        <% if job.jobsite %>
          <td><%= job.jobsite.name %></td>
        <% else %>
          <td> N/A </td>
        <% end %>
        <td><%= link_to 'Show', job %></td>
        <!-- if current_user.admin %> -->
          <!-- <td style="background: lightgray;"> link_to 'Destroy', job, method: :delete, data: { confirm: 'Are you sure?' } %></td> -->
        <!-- end %> -->
      </tr>
    <% end %>
  </tbody>
</table>

但无论如何,表格都不会改变。 这是目前的表格:

enter image description here

根据我列出的所有链接,我所做的一切,它应该神奇地改变为这样,按钮和分页:

enter image description here

任何人都可以帮忙告诉我这里做错了什么吗?我一直在寻找几个小时看示例,但我无法找出为什么这不起作用。

更新

我直接从他们的网站https://datatables.net/manual/installation检查了我的步骤,我仍然看不到任何我做错的事情。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

您需要对代码进行两处更改才能使其正常工作:

  1. 您必须从colspan中移除<thead>thtd的数量应匹配。

  2. 您的<script>标记应位于页面底部。

答案 1 :(得分:0)

http://railscasts.com/episodes/240-search-sort-paginate-with-ajax?autoplay=true 希望它显示如何对页面进行分页,排序而不加载整个文档。