jquery-datatables-rails在link_to之后没有显示,但在其他时间显示

时间:2015-04-09 20:50:12

标签: ruby-on-rails-4 jquery-datatables

我试图让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)上没有工作。

2 个答案:

答案 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" %>