Activeadmin останавливает мой JQuery работает - PullRequest
9 голосов
/ 09 января 2012

Я использую перетаскивание jquery в моем приложении, и оно отлично работает.

Затем я добавил activeadmin, и он останавливает работу jquery.

Я получаю эту ошибку

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

Если я удалю эту строку из active_admin.js

//= require active_admin/base

снова начинает работать.

Есть идеи?

Ответы [ 3 ]

12 голосов
/ 14 декабря 2012

Если вы посмотрите файл базового манифеста activeadmin , вы увидите, как вызывается дополнительная загрузка 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.Для работы необходимо активным администратором загрузить application.js до active_admin.js.Добавьте это в config / initializers / 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 загружается внутри активного администратора, вам необходимо самостоятельно разрешать любые конфликты пространства имен.

7 голосов
/ 23 ноября 2015

Попробуйте переместить файл active_admin.js в папку vendor / assets / javascripts вашего проекта Rails: все будет в порядке.

Пожалуйста, сообщите нам об этомесли это кому-нибудь помогло!

С уважением

0 голосов
/ 16 июня 2015

У меня была ошибка с кодом выше, поэтому я немного подправил свой:

init init admin:

  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 }

active admin js

  //= require active_admin/base

Вот и все!

...