我试图让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数据表所需的javascript
$(document).ready( function () {
$("#groups").DataTable({paging:true,
pagingType: 'full_numbers'
});
});
这是有效的,如果我转到网址: `本地主机:3000 /组&#39;
它可以工作,我看到数据表,空白,或者数据,无论数据库状态是什么,它都可以和搜索一起使用。问题是,如果我转到并创建一个新组...并保存它,它将转到该节目,然后我单击返回转到索引,然后它显示该表,就好像没有jquery-data-tables那样。标题看起来不同,没有分页,没有搜索,没有。如果我点击上面的网址并按回车键,它会再次加载。
同样的事情,如果我从我的主页转到组控制器而不是在网址框中输入它,而是使用带有bootstrap3按钮的link_to,如下所示:(来自主页索引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 %>
然后这个工作,它会将您带到组并显示表中的所有数据,但它不是jquery数据表。这让我疯狂,不知道为什么要在URL栏中输入它,并且当link_to或者&#39;返回&#39;在节目表(groups_path)上没有工作。
答案 0 :(得分:1)
遇到与您相同的问题,并通过以下步骤解决。
将“groups.js”文件中的第1行更改为
$(document).on "page:change", ->
信息来自: http://guides.rubyonrails.org/working_with_javascript_in_rails.html#page-change-events
答案 1 :(得分:0)
你正在使用rails 4,turbolink的问题添加数据 - turbolinks false,你的链接为:
<%= link_to 'Back', index_path, "data-turbolinks" => "false" %>