2012-01-09 15 views
6

Estoy usando jquery drag and drop en mi aplicación y funciona bien.Activeadmin detiene mi trabajo en jQuery

Luego agregué activeadmin y detiene mi trabajo de jquery.

me sale este error

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

Si quito esta línea de active_admin.js

//= require active_admin/base 

que empiece a funcionar de nuevo.

¿Alguna idea?

Respuesta

9

Si nos fijamos en la activeadmin base manifest file podrá ver dónde se llama la carga jQuery adicional. La última llamada en el manifiesto base es al manifiesto de la aplicación activeadmin. Por lo tanto, hay una forma fácil de eludir la carga de jquery adicional no deseada.

Cambiar esta línea en /app/assets/javascripts/active_admin.js de que la aplicación:

//= require active_admin/base 

Para

//= require active_admin/application 

De esta manera el código JavaScript de administración activa se cargará sin volver a cargar jQuery.

Dentro del espacio/admin, el administrador activo carga active_admin.js sin cargar application.js, por lo que también necesita cargar la aplicación.js allí. Para trabajar, debe hacer la carga administrativa activa application.js antes de active_admin.js. Agregue esto a config/inicializadores/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} 

Sin embargo, tenga en cuenta que para que esto funcione sin problemas, es posible que todas estas declaraciones en application.js de su aplicación se manifiestan:

//= require jquery 
//= require jquery-ui 
//= require jquery_ujs 

también como application.js se está cargando dentro del administrador activo, usted necesita administrar los conflictos de espacio de nombres usted mismo.

+2

Esta debería ser la respuesta correcta, creo. –

2

La versión actual de Gem de Active admin tiene una copia adicional de jquery incluida a través // // require active_admin/base, ha estado causando muchos problemas para las personas que ya tienen jquery referenciado en su aplicación.

Ver esta solicitud de extracción en la gema de administración activa detalles y las posibles soluciones: Pull Request #468

-1

que ha habido un error con el código anterior, por lo pellizqué la mina un poco:

activa administrador de inicio:

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 } 

administrador activa js

//= require active_admin/base 

Eso es todo!

2

Intenta mover tu active_admin.js file al proveedor/assets/javascripts carpeta de su proyecto Rails: debería estar bien.

Háganos saber si ayudó a alguien!

Saludos

+0

¡¡te amo !!!!!! Funciona –