我正在使用DataTables与我的Rails应用程序。在Rails中的数据表 - 如何摆脱“无法重新初始化DataTable”错误
出于某种原因,DataTables/JQuery似乎认为我试图重新初始化DataTable。每当我加载使用数据表的页面时,它给这个错误:
DataTables warning (table id = 'DataTables_Table_0'): Cannot reinitialise DataTable.
To retrieve the DataTables object for this table, pass no arguments or see the docs for bRetrieve and bDestroy
这究竟是为什么?我只页面加载脚本一次,据我可以看到,我知道它会产生每页只有一个表元素...
/application/views/layouts/application.html.haml:
!!!
%html
%head
= javascript_include_tag "application"
%body
= yield
/application/views/reports/index.html.haml:
%table
%thead
%tr
%th Short Name
%th Controls
%tbody
- @reports.each do |report|
%tr
%td= link_to report.full_name, report_path(report)
%td
= link_to "Edit", edit_report_path(report)
\|
= delete_link "Delete", report_path(report)
我敢肯定,我已经正确设置了资产管道...
个/assets/javascripts/application.js:
//= require jquery
//= require jquery_ujs
//= require dataTables/jquery.dataTables
//= require html5shiv
//= require_tree .
而且我敢肯定,我打电话正确的DataTable ...
/assets/javascripts/tables.js。咖啡:
jQuery ->
$('table').dataTable
sPaginationType: "full_numbers"
bJQueryUI: true
而且我不认为我的任何宝石将导致此行为:
的Gemfile:
source "http://rubygems.org"
gem "rails", "3.2.11"
gem "activesupport"
gem "actionmailer"
gem "mail"
gem "railties"
gem "compass"
gem "pg"
gem "sass"
gem "sass-rails"
gem "haml"
gem "haml-rails"
gem "susy"
gem "jquery-rails"
gem "google-analytics-rails"
gem "declarative_authorization"
gem "authlogic"
gem "simple_form"
gem "country-select"
gem "rails3-generators"
gem "hirb"
gem "debugger"
gem "redis"
gem "RedCloth"
gem "friendly_id"
gem "high_voltage"
gem "validatious"
gem "houdini"
gem "rspec-rerun"
gem "html5shiv-rails"
gem "normalize-rails"
gem "simple-navigation"
gem "thin"
group :development do
gem "taps"
gem "better_errors"
gem "binding_of_caller"
end
group :test do
gem "capybara"
gem "rspec-rails"
gem "database_cleaner"
gem "launchy"
gem "spork", "0.9.2"
gem "respec"
end
group :assets do
gem "better_errors"
gem "sass-rails"
gem "coffee-rails"
gem "compass-rails"
gem "compass-susy-plugin"
gem "fancy-buttons"
gem 'jquery-datatables-rails', github: 'rweng/jquery-datatables-rails'
gem "jquery-ui-rails"
gem "uglifier"
end
更新:我知道这有东西做与资产管道,因为在生产相同的代码在Heroku(rake assets:precompile
后)不会引起问题它正在开发中(这里应用程序为我即时装配资产)。
jQuery选择器'$('table')'是非常通用的。如果页面中有多个表格可能导致问题。尝试更具体的选择器,如ID。看到浏览器源代码会更好,因为这是错误发生的地方 – charlietfl
是的,谢谢。虽然我不确定为什么只有一个表格在浏览器源代码中可见。 –
我认为datatables可能需要用于包装的ID,以帮助保持实例隔离..不是100%确定 – charlietfl