jQuery的数据表 - 轨道的宝石不能正确显示,直到页面被刷新(jquery-datatables

2019-10-20 00:35发布

环境:红宝石2.0.0,Rails的4.1,Windows 8.1中,设计,jQuery的数据表护栏1.12.2。 我也跑行为,作为租户,这是一个美妙的多租户的宝石。

我有数据表宝石起来,除了一个小问题上运行。 当页面被从索引访问的行动,它不格式化和工作。 只有浏览器刷新触发它,然后它精美的作品。 由于它刷新后的作品,在我看来,创业板安装好。

我已经尝试多次修复。 我最小的页面,这样是只显示表。 我想这两个IE和Chrome。 出现这种情况我是否没有清除浏览器缓存和/或重新启动应用程序。 我检查了HTML,以确保我没有看到任何问题存在。 我检查了服务器日志内找到它没有差异。 没有什么我已经做了,似乎任何改变。

这里是之前和之后的看法,表示在访问页面的刷新,然后:

首先访问:

刷新后,一切工作正常:

该指数操作是基本的,但要注意它是由行为,作为租户作用域:

  def index
    @devices = Device.all
    @roles = Role.all
  end

index.html.erb是:

<div class="row">
  <%= render partial: 'index', layout: 'layouts/sf_label', locals: { title: 'List Devices' } %>
</div>

部分_index.html.erb是:

<div class="span8">
  <table id="datatable">
    <thead>
    <tr>
      <th>Device</th>
      <th>Created</th>
      <th>Role</th>
    </tr>
    </thead>
    <tbody>
    <% @devices.each do |device| %>
        <tr>
          <td><%= link_to device.name, edit_device_path(device.id) %></td>
          <td><%= device.created_at.to_date %></td>
          <td><%= device.roles.first.name.titleize unless device.roles.first.nil? %></td>
        </tr>
    <% end %>
    </tbody>
  </table>
</div>

在的Gemfile:

gem 'jquery-datatables-rails', github: 'rweng/jquery-datatables-rails'
gem 'jquery-ui-rails'

在application.js中:

//= require dataTables/jquery.dataTables
//= require dataTables/jquery.dataTables.bootstrap

在datatable.js.coffee:

jQuery ->
  $('#datatable').dataTable()

在devices.js.coffee:

$('.datatable').dataTable({
  "sPaginationType": "bootstrap"
});

在application.css.css:

 *= require dataTables/jquery.dataTables
 *= require dataTables/jquery.dataTables.bootstrap

在日志中,这是相同的两种方式:

  Rendered devices/_index.html.erb (253.2ms)
  Rendered devices/index.html.erb within layouts/application (254.2ms)
  Rendered layouts/_shim.html.erb (1.0ms)
  CACHE (0.0ms)  SELECT COUNT(*) FROM "roles" INNER JOIN "devices_roles" ON "roles"."id" = "devices_roles"."role_id" WHERE "devices_roles"."device_id" = $1 AND (((roles.name = 'admin') AND (roles.resource_type IS NULL) AND (roles.resource_id IS NULL)))  [["device_id", 51]]
  Rendered layouts/_navigation_links.html.erb (3.0ms)
  Rendered layouts/_navigation.html.erb (4.0ms)
  Rendered layouts/_messages.html.erb (1.0ms)
Completed 200 OK in 290ms (Views: 248.2ms | ActiveRecord: 36.0ms)

所有的建议赞赏...

Answer 1:

试试这一次,

添加turbolinks宝石到宝石文件>>

gem 'turbolinks'
gem 'jquery-turbolinks'

并添加以下内容的application.js文件。

//= require jquery.turbolinks
//= require turbolinks

不要捆绑并重新启动服务器。



文章来源: jquery-datatables-rails gem doesn't display correctly until page is refreshed