Rails アプリで DataTables を使用しています。
何らかの理由で、DataTables/JQuery は、DataTable を再初期化しようとしていると考えているようです。DataTables を使用するページを読み込むたびに、次のエラーが発生します。
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
なぜこうなった?私のページは、私が見る限りスクリプトを 1 回だけロードし、ページごとに 1 つのテーブル要素しか生成しないことを知っています...
/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 .
そして、DataTablesを正しく呼び出していると確信しています...
/assets/javascripts/tables.js.coffee :
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
)で本番環境にある同じコードは、開発時にここで引き起こしている問題を引き起こしていないためです(アプリがオンザフライで私のためにアセットを組み立てる場所) .)