【问题标题】:ActiveAdmin with Rails 3.1 breaking javascript带有 Rails 3.1 的 ActiveAdmin 破坏了 javascript
【发布时间】:2012-01-20 00:48:01
【问题描述】:

我刚刚用我的 Rails 3.1 应用程序实现了 ActiveAdmin gem,它导致我的应用程序中的一些 javascript 出现问题,它允许 cmets 的 ajax 发布。删除 active_admin.js 文件会导致问题消失。如何在保留应用程序功能的同时保留 active_admin 的 javascript?关于问题可能是什么的任何想法?

active_admin.js 的内容:

//= require active_admin/base

我的 application.js 文件的内容:

//= require jquery
//= require jquery_ujs
//= require_tree .

被 ActiveAdmin 破坏的 Javascript:

jQuery -> 
$('.addcomment').live("click", ->
 $(this).closest('.comment_area').find('.add_comment_box').parent().removeClass("add_comments_box_hidden").addClass('add_comments_box')
    return false )

init_csrf = ->
  window._settings.token = $('meta[name="csrf-token"]').attr 'content'
  $.ajaxSetup
    beforeSend: (xhr) ->
      xhr.setRequestHeader "X-CSRF-Token", _settings.token

jQuery ->
    $('.post_comment_btn').live("click", ->
        $(this).closest('.comment_area').addClass('add_comment_here')
        $.post(
            '/comments'
            $(this).closest('form').serialize()
            null
            "script"
        )
        return false )

链接到 active_admin github page

【问题讨论】:

    标签: javascript ruby-on-rails ruby-on-rails-3.1 activeadmin


    【解决方案1】:

    我不知道这是否会对您有所帮助...我也将 active_admin 的 javascript 与 active_admin 应用程序分开使用。我在单击“ajax 链接”时遇到了双重请求的问题。该问题是由 vendor.js 文件中的触发器引起的。最新版本的 gem(vendor.js 已被删除)和我的 application.js 文件中的正确包含语句已修复此问题。

    我建议你用明确的 require 语句替换 //=require_tree .。逐个尝试添加您的部门,直到找到问题为止。

    此外,请向我们提供您正在使用的 ActiveAdmin 版本。

    【讨论】:

    • 当我替换 '\\=require_tree 。对我的 js 文件使用单独的 require 语句,不包括 active_admin.js 文件,它解决了这个问题。
    【解决方案2】:

    问题是 ActiveAdmin 包含自己的 jQuery 版本,它会覆盖您的版本。如果你在 jQuery 中添加了任何插件,它们就会消失。

    幸运的是,有一个简单的解决方法 - 不要为 ActiveAdmin 明确包含任何 javascript。你不需要。 Active Admin 知道从 ActiveAdmin gem 中提取它需要的 javascript。因此,只需删除该 require 行就可以了。

    【讨论】:

      【解决方案3】:

      当您删除 active_admin.js 中的 require 行时,索引中的删除或更新链接(default_actions)不起作用,所以让该行成为并且:

      //= require_tree . 替换为您资产中的确切 js 文件。这终于解决了我的问题!

      希望它能为某人节省一些时间。 问候

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多