2012-04-27 14 views
0

datatables jsをrails-3.2.3/bootstrapアプリケーションで使用してテーブルのフィールドをソートします。私は、資産のパイプラインをprecopilingせずにローカルでアプリケーションを実行する場合rails-3アセットパイプラインをプリコンパイルすると、JavaScriptが失敗し、herokuの展開が妨げられます

、それはすぐに私が実行し、正常に動作しますが、:

RAILS_ENV=production bundle exec rake assets:precompile 

結果の公開/資産は防ぐDataTableのプラグインが動作するように、それが正しく表示されても、公共/資産/ manifest.ymlファイルや公共/ assetsディレクトリにパッケージ化:

[email protected]:~/rails/github/gitwatcher$ ls -l app/assets/javascripts 
total 84 
-rw-rw-r-- 1 lsoave lsoave 553 2012-04-27 21:36 application.js 
-rw-rw-r-- 1 lsoave lsoave 99 2012-04-20 21:37 bootstrap.js.coffee 
-rw-rw-r-- 1 lsoave lsoave 3387 2012-04-26 20:12 DT_bootstrap.js 
-rw-rw-r-- 1 lsoave lsoave 71947 2012-04-26 20:12 jquery.dataTables.min.js 
[email protected]:~/rails/github/gitwatcher$ 

いずれかapplication.jsは右になります。

app/assets/javascripts/application.js: 

//= require jquery 
//= require jquery_ujs 
//= require twitter/bootstrap 
//= require DT_bootstrap 
//= require jquery.dataTables.min 
//= require_tree . 

もちろん、これはレールアプリがヒロクで動作するのを防ぎます(私はアプリをゼロからコンパイルすることも、ローカルにプリコンパイルされたバージョンを使用することもできますが、とにかく動作しません)。

どうすればいいですか?

+0

は、なぜあなたは手動ですべてのファイルを含めた後、 '// = require_tree'呼ぶのですか? –

+0

...いいえ、試した後に間違って忘れてしまいました。とにかくそれは確実に何も停止しません...それを削除した後、パイプラインはまだDataTables js –

答えて

4

:最善の策はここからです。 jquery-datatables-railsの宝石を使用していますか?そうでなければ、あなたはすべきです!

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

と実行します:あなたのgemfileにこの行を入れて、あなたの資産グループに入れないでくださいまたはに展開するとき、それは動作しません。

バンドルは

NOTEをインストールheroku(資産グループは本番環境では使用されていないため)。

また、あなたのapplication.rbにこの行を入れてください:

config.assets.initialize_on_precompile = false 

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

あなたのapplication.jsにこれらを追加し、あなたのapplication.cssにこれを追加します。

*= require dataTables/jquery.dataTables.bootstrap 

これを、あなたのコントローラ用のjs.coffeeファイルに追加します。これは、データテーブルを使用しています:

あなたは流体コンテナを使用している場合:あなたは固定幅のコンテナを使用している場合

#// For fluid containers 
$('#dashboard').dataTable({ 
    "sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span6'i><'span6'p>>", 
    "sPaginationType": "bootstrap" 
}); 

を:

#// For fixed width containers 
$('.datatable').dataTable({ 
    "sDom": "<'row'<'span6'l><'span6'f>r>t<'row'<'span6'i><'span6'p>>", 
    "sPaginationType": "bootstrap" 
}); 
+2

PS:このメソッドを使用すると、アセットをローカルでプリコンパイルすることなく、herokuにデプロイできます。私は、ローカルで資産をプリコンパイルするのが面倒だと感じました。 –

+0

私たちは2つのjquery-datatables-rails宝石を持っています。一つはhttps://github.com/kclair/jquery-datatables-railsです。もう一つはhttps://github.com/rweng/jquery-datatables-railsです。つかいます ? –

+1

github.com/rweng/jquery-datatables-rails –

0

これは動作しない理由がいくつかあります。私はちょうどそれが自分自身を働いて得た

http://www.neilmiddleton.com/heroku-asset-pipeline-faq/

+0

を破壊します。私は言及された異なった方法を試みたが、これは資産のパイプラインをローカルに、私のマシン上で、配備前にもパイプラインを破る。 –

関連する問題