gpt4 book ai didi

jquery-datatables-rails gem 在刷新页面之前无法正确显示

转载 作者:行者123 更新时间:2023-12-01 06:15:26 26 4
gpt4 key购买 nike

环境:Ruby 2.0.0、Rails 4.1、Windows 8.1、Devise、jquery-datatables-rails 1.12.2。我还运行 Acts-as-tenant,这是一个很棒的 Multi-Tenancy gem 。

除了一个小问题外,我已经启动并运行了数据表 gem。当从索引操作访问该页面时,该页面未格式化且无法工作。只需刷新浏览器即可启动它,然后它就会完美地工作。由于它在刷新后有效,因此在我看来,gem 设置很好。

我已尝试多次修复。我最小化了页面,以便只显示表格。我尝试了 IE 和 Chrome。无论我是否清除了浏览器缓存和/或重新启动了应用程序,都会发生这种情况。我检查了 HTML 以确保没有发现任何问题。我检查了服务器日志,没有发现其中有任何差异。我所做的一切似乎都没有改变任何事情。

以下是之前和之后的 View ,显示了页面被访问然后刷新的位置:

首次访问:

First access

刷新后,一切正常:

After refresh

索引操作是基本的,但请注意它的范围是 Acts-as-tenant:

  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)

感谢所有建议...

最佳答案

尝试一次:

将turbolinks gem添加到gem文件中>>

gem 'turbolinks'
gem 'jquery-turbolinks'

并将以下内容添加到 application.js 文件中。

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

执行捆绑并重新启动服务器。

关于jquery-datatables-rails gem 在刷新页面之前无法正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23285111/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com