我正在使用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
答案 0 :(得分:3)
在/ 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
答案 1 :(得分:1)
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