2012-01-09 61 views
6

我使用jQuery拖放在我的應用程序,它工作正常。Activeadmin停止我的jQuery工作

然後我添加了activeadmin,它停止了我的jQuery的工作。

我得到這個錯誤

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

如果我刪除從active_admin.js

//= require active_admin/base 

它開始工作了這條線。

任何想法?

回答

9

如果你看一下activeadmin base manifest file,你會看到那裏的附加jQuery的負載被調用。基礎清單中的最後一個調用是對activeadmin應用程序清單。因此,有一種簡單的方法可以繞過不需要的額外jQuery負載。

改變這一行的,你的應用程序的/app/assets/javascripts/active_admin.js:

//= require active_admin/base 

//= require active_admin/application 

這樣主動管理的JavaScript代碼將無需重新加載jQuery的加載。

在/ admin空間中,活動管理員加載active_admin.js而不加載application.js,因此您也需要加載application.js。要工作,您需要在active_admin.js之前激活管理加載application.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

這應該是正確的答案,我相信。 – 2013-05-30 22:38:29

2

Active admin的當前Gem版本通過// = require active_admin/base包含jquery的附加副本,這對於已經在其應用中引用jquery的人員造成了很多問題。

查看活動管理員寶石的細節和可能的解決方案這一拉請求: Pull Request #468

-1

我有一個錯誤與上面的代碼,所以我調整我的一點:

主動管理初始化:

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文件到你的Rails項目的vendor/assets/javascripts文件夾:你應該沒問題。

請讓我們知道它是否有幫助!

Regards

+0

我愛你!!!!!!有用 – 2017-10-02 13:12:47