Activeadmin阻止我的jQuery工作

Edw*_*ard 9 jquery ruby-on-rails ruby-on-rails-3 activeadmin

我正在使用jquery拖放我的应用程序,它工作正常.

然后我添加了activeadmin,它停止了我的jquery工作.

我收到这个错误

$(".draggable_article_image").draggable is not a function
Run Code Online (Sandbox Code Playgroud)

如果我从active_admin.js中删除此行

//= require active_admin/base
Run Code Online (Sandbox Code Playgroud)

它又开始工作了.

有任何想法吗?

Reg*_*ieB 12

如果查看activeadmin基本清单文件,您将看到调用其他jquery加载的位置.基本清单中的最后一个调用是activeadmin应用程序清单.因此,有一种简单的方法可以绕过不需要的额外jquery负载.

在您的应用程序的/app/assets/javascripts/active_admin.js中更改此行:

//= require active_admin/base
Run Code Online (Sandbox Code Playgroud)

//= require active_admin/application
Run Code Online (Sandbox Code Playgroud)

这样就可以在不重新加载jquery的情况下加载活动管理员的javascript代码.

在/ admin空间中,活动管理员加载active_admin.js而不加载application.js,因此您还需要加载application.js.要使用,您需要在active_admin.js之前激活admin load application.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}
Run Code Online (Sandbox Code Playgroud)

但是,请注意,要使其无缝工作,您可能需要在应用程序的application.js清单中显示所有这些声明:

//= require jquery
//= require jquery-ui
//= require jquery_ujs
Run Code Online (Sandbox Code Playgroud)

此外,当在活动管理员中加载application.js时,您需要自己管理任何命名空间冲突.

  • 我相信这应该是正确的答案. (2认同)

lbo*_*oix 8

尝试将您的active_admin.js文件移动到Rails项目的vendor / assets / javascripts文件夹中:您应该可以。

请让我们知道它是否对某人有所帮助!

问候