Javascript 为什么我使用Datatables的rails应用程序在使用后退按钮时不能正确绘制表格,而在刷新页面时却能正确绘制表格?

Javascript 为什么我使用Datatables的rails应用程序在使用后退按钮时不能正确绘制表格,而在刷新页面时却能正确绘制表格?,javascript,jquery,ruby-on-rails,datatables,Javascript,Jquery,Ruby On Rails,Datatables,我构建了一个rails应用程序,使用rails 5.2.3和ruby 2.6.3浏览另一个应用程序的用户日志,编辑其用户及其状态。这是一个简单的应用程序,我使用rails Datatables来布局表。当我输入站点的url时,例如,它会显示带有排序、分页等的日志表,就像它应该显示的那样。如果我移动到我的“关于”页面,然后从那里单击“返回”链接,它将返回到“日志索引”视图,并在浏览器栏中显示相同的url,但是这些表不是使用Datatables进行布局的。如果在浏览器上单击“重新加载”网页,它将正确

我构建了一个rails应用程序,使用rails 5.2.3和ruby 2.6.3浏览另一个应用程序的用户日志,编辑其用户及其状态。这是一个简单的应用程序,我使用rails Datatables来布局表。当我输入站点的url时,例如,它会显示带有排序、分页等的日志表,就像它应该显示的那样。如果我移动到我的“关于”页面,然后从那里单击“返回”链接,它将返回到“日志索引”视图,并在浏览器栏中显示相同的url,但是这些表不是使用Datatables进行布局的。如果在浏览器上单击“重新加载”网页,它将正确加载和绘制。“关于”页面上的反向链接为:

<%= link_to 'Back', logs_path %>
logs.coffee有:

jQuery ->
        $('#posts-table').dataTable()
          sPaginationType: "full_numbers"
          bJQueryUI: true
并且views/logs/index.html.erb为表提供了:

<table id="posts-table" class="display" width="900">


所以我想我在想,jQuery Datatable语句在logs.coffee中的位置是否意味着在执行链接时不包括它?如果没有,那么我应该将dataTable()语句放在哪里,它应该是什么样子?

因为您使用的是turbolinks,它看起来像是turbolinks如何加载和缓存页面的问题

您可以尝试将代码放在“turbolinks:load”侦听器中,如下所示:

$(文档).on'turbolinks:load',()->
$('#posts table')。dataTable()
sPaginationType:“完整编号”
bJQueryUI:是的

无论如何,您应该考虑TurbLink如何处理缓存页面,您可以在In和In中找到更多的信息。

<table id="posts-table" class="display" width="900">