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时,您需要自己管理任何命名空间冲突.
尝试将您的active_admin.js文件移动到Rails项目的vendor / assets / javascripts文件夹中:您应该可以。
请让我们知道它是否对某人有所帮助!
问候