jquery-datatables-rails 在 link_to 之后没有出现,但其他时候出现

jquery-datatables-rails not showing up after a link_to but does other times

我正在尝试让 rails 4.0 (ruby 2.2) 中的 Jquery-data-table 正常工作。它以一种奇怪的方式做到了。如果我转到组控制器中的索引视图(片段):

<%- model_class = Group -%>
<div class="page-header">
  <h1><%=t '.title', :default => model_class.model_name.human.pluralize.titleize %></h1>
</div>

<!-- table class="table table-striped"  id="groups" -->
<table class="display"  id="groups">
  <thead>
    <tr>
      <th><%= model_class.human_attribute_name(:id) %></th>
      <th><%= model_class.human_attribute_name(:name) %></th>
      <th><%= model_class.human_attribute_name(:address) %></th>
      <th><%= model_class.human_attribute_name(:city) %></th>
      <th><%= model_class.human_attribute_name(:phone) %></th>
      etc..

我在 groups.js 文件

中有 jquery 数据 table 所需的 javascript
$(document).ready( function () {
    $("#groups").DataTable({paging:true, 
                            pagingType: 'full_numbers'
    });
});

这有效,如果我转到 url: `localhost:3000/组'

它有效,我看到数据 table,空的,或者有数据,无论数据库状态是什么,它都有效并且正在搜索。问题是如果我转到并创建一个新组...并保存它,它会显示,然后我单击返回转到索引,然后它显示 table 就好像没有 jquery-data-tables 在那里。标题看起来不同,没有分页,没有搜索,什么都没有。如果我单击上面的 url 并按回车键,它会再次正常加载。

同样的事情,如果我从我的主页转到组控制器而不在 url 框中输入它,而是使用 link_to 和 bootstrap3 按钮,如下所示:(从主页索引 html)

<%= link_to groups_path do %>
                 <button type="button" class="btn btn-default btn-lg">
                    <span class="glyphicon glyphicon-user" aria-hidden="true" ></span> Group
                </button>
            <% end %>

然后就可以了,它会将您带到组中并在 table 中显示所有数据,但它不是 jquery 数据 table。这让我发疯了,不知道为什么在 URL 栏中输入它并在显示表单 (groups_path) 上输入 link_to 或 'back' 时有效没有工作。

遇到了和你一样的问题,按照下面的步骤解决了。

将 "groups.js" 文件中的第一行更改为

$(document).on "page:change", ->

信息来自: http://guides.rubyonrails.org/working_with_javascript_in_rails.html#page-change-events

您正在使用 rails 4,turbolink 的问题 add data-turbolinks false with your link to as:

<%= link_to 'Back', index_path, "data-turbolinks" => "false" %>