2012-01-09 11 views
6

私のアプリケーションでjqueryドラッグアンドドロップを使用していて、正常に動作します。ActiveadminがjQueryの動作を停止します

次にactiveadminを追加して、jqueryの動作を停止します。

私はactive_admin.js

//= require active_admin/base 

からこの行を削除した場合、それは再び作業を開始し、このエラー

$(".draggable_article_image").draggable is not a function 

を取得します。

アイデア?

答えて

9

あなたはactiveadmin base manifest fileを見れば、追加のjqueryの負荷が呼び出された場所が表示されます。ベースマニフェストの最後の呼び出しは、activeadminアプリケーションマニフェストへの呼び出しです。したがって、不要な追加のjqueryの負荷をバイパスする簡単な方法があります。

変更しますアプリケーションの/app/assets/javascripts/active_admin.jsでこの行:

//= require active_admin/application 

//= require active_admin/base 

、アクティブな管理者のjavascriptのコードはjqueryのをリロードせずにロードされる方法。

/adminスペース内でアクティブな管理者がapplication.jsをロードせずにactive_admin.jsをロードするため、そこにapplication.jsもロードする必要があります。動作させるには、active_admin.jsの前にactive admin load.jsをロードする必要があります。設定/初期化子/ active_admin.rbにこれを追加します。

current_javascripts = config.javascripts.clone 
config.clear_javascripts! 
config.register_javascript 'application.js' 
current_javascripts.reverse.each{|j| config.register_javascript j} 

しかし、これはシームレスに機能するためには、あなたがマニフェストにアプリのapplication.jsにすべてのこれらの宣言が必要な場合がありますのでご注意:

また
//= require jquery 
//= require jquery-ui 
//= require jquery_ujs 

application.jsがアクティブな管理者の中にロードされているので、ネームスペースの競合を管理する必要があります。

+2

これは正しい答えになるはずです。 –

2

アクティブな管理者の現在のGemリリースでは、// = active_admin/baseが必要です。jqueryが追加されています。アプリでjqueryを参照している人には多くの問題が発生しています。

は詳細と可能な解決策のためのアクティブな管理宝石で、このプルリクエストを参照してください: Pull Request #468

-1

私は上記のコードでエラーが発生しましたので、私は私を少し微調整:

アクティブな管理者のinit:

config.clear_javascripts! 
    config.register_javascript 'admin/active_admin.js' 

    current_javascripts = config.javascripts.clone 
    config.clear_javascripts! 
    config.register_javascript 'application.js' 
    current_javascripts.each{ |j| config.register_javascript j } 

アクティブな管理JS

//= require active_admin/base 

それです!

2

active_adminを移動してみてください。jsファイルをベンダー/アセット/ javascripts Railsプロジェクトのフォルダにコピーしてください。

誰かを助けてくれたら教えてください!

よろしくお願いします。

+0

私はあなたを愛しています!!!!!!できます –

関連する問題