【问题标题】:How to include gazon/gon in ActiveAdmin如何在 ActiveAdmin 中包含 gazon/gon
【发布时间】:2023-03-10 02:11:01
【问题描述】:

我正在使用 ActiveAdmin 处理 Rails 项目,我想使用“gem gon”来处理我的 javascripts 文件中的数据发送。 我遇到的问题是在activeadmin的dashboard.rb中没有识别gon变量。

未定义的局部变量或方法`gon'

这是我的代码,就这个 railscast 指南 instructs:

# creat gon variable
gon.test = "hey there"
render partial: 'graph/dashboard_graph.html.erb' #this is a partial

我找到了这篇文章,但我有不同的情况。 https://github.com/activeadmin/activeadmin/issues/2450

我也发现了这个场景,但没有明确的解决方案: Active Admin: Including Javascript

我整天都陷入这个错误,一直在寻找如何在 ActiveAdmin 中正确包含 gon,但我找不到解决方案。我希望您能提供意见。

谢谢。

Chkm8

【问题讨论】:

    标签: javascript ruby-on-rails activeadmin


    【解决方案1】:

    在 /config/initializers/ 中创建新文件,例如:activeadmin.rb 并粘贴:

    module ActiveAdmin
      module Views
        module Pages
          class Base < Arbre::HTML::Document
    
            alias_method :original_build_head, :build_active_admin_head
    
            def build_active_admin_head
              original_build_head
    
              within @head do
                text_node Gon::Base.render_data({ })
              end
            end
    
          end
        end
      end
    end
    

    我遇到了同样的问题,这对我有用。 如果你没有使用 Rails 4 而不是 Gon::Base.render_data({ }) 它可能是 include_gon

    【讨论】:

    • 在 ActiveAdmin 2.3.1 中工作。 @bxorcloud,你重启 Rails 了吗?
    【解决方案2】:

    active_admin 的最新稳定版本使用 head 而不是 @head

    当使用@head 在最新版本中出现以下错误时

    ArgumentError - 不能在 nil 的上下文中。

    使用下面的代码来修复它。

    module ActiveAdmin
      module Views
        module Pages
          class Base < Arbre::HTML::Document
            alias original_build_head build_active_admin_head
    
            def build_active_admin_head
              original_build_head
    
              within head do
                text_node Gon::Base.render_data({})
              end
            end
          end
        end
      end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-01
      • 2014-01-08
      • 1970-01-01
      • 2012-01-13
      • 2014-12-31
      • 1970-01-01
      相关资源
      最近更新 更多