2013-02-17 36 views
4

我想对我的活动管理启用的rails应用程序做一些分析。为此,我需要在我的布局文件中的</body>标记之前粘贴一些<script><noscript>代码。不幸的是,由于ActiveAdmin呈现自己的布局文件,因此我无法做到这一点,因为application.html布局文件似乎无效。Active Admin - 如何在</body>标记之前添加自定义脚本?

有没有可以插入自定义html代码的挂钩/位置?

+1

您可以克隆git存储库并将其从源代码捆绑出来,这对您来说是一个足够好的解决方案吗?如果是的话,我会给你写一篇演讲。 – gmaliar 2013-02-17 21:19:04

+0

@Guy很好,如果这是需要的,是的请。 – bragboy 2013-02-17 21:23:05

回答

2

好的,首先你必须将资源库克隆到你的rails应用程序中,通常你会把它放到vendor目录中,但是rails会抛出这个令人讨厌的警告,认为它会反对使用vendor目录风格dir,如果要使用3. *版本进行生产,则无关紧要,因此只需在Rails应用程序的供应商或lib目录中执行此操作即可。

git clone git://github.com/gregbell/active_admin.git

现在改变你的Gemfile,并从目录中加载的宝石设置

gem 'activeadmin', :path => 'lib/activeadmin'

现在,你有你自己版本activeadmin的,因此你需要编辑你可以直接从该目录中执行,包括更改其捆绑的默认布局。你充分意识到,将其更新到新版本需要你做一些git pull ING,如果需要合并

虽然这种方法可以让你更加活跃定制管理:

提醒的几句话。

我用jquery-ui-rails插件和另一个宝石的方法,它的工作非常出色,而且如果你添加你想要的宝石本身,你可以贡献回宝石。 祝你好运!

---- ----编辑

正如你在评论activeadmin指出,不完全工作,你会怎么指望,但不用担心它仍然是一个容易解决。 在引擎盖下,activeadmin使用由同一开发人员创建和维护的名为arbre的东西。

https://github.com/gregbell/arbre,这只是一个DOM库的红宝石。

所以,你必须做的是这样的:

头部到刚刚克隆lib/active_admin/views/footer.rb

这个activeadmin目录里面这个文件是activeadmin应用的页脚,你可以在里面的build见你可以在里面插入的东西,如add_scripts方法和下面添加

def add_scripts 
    script :src => 'http://yoursource.com' 
end 

我不完全知道如何在arbre语法流,但它不应该是很难方法弄清楚。

祝你好运!

+1

+1的想法。我检查了app/views/layout下布局文件的活动管理源。我只看到一个名为active_admin.html.arb的文件,它只有一行。不知道如何在那里插入我的脚本! – bragboy 2013-02-17 21:33:16

+0

进一步扩大我的答案:-) – gmaliar 2013-02-17 21:50:14

+0

感谢您的答案。将尽力确认 – bragboy 2013-02-17 21:59:56

6

使用ActiveAdmin 0.6.0和Rails 4.0.5进行测试。

您也可以覆盖活动管理员用来渲染页脚的arbre视图。在您的active_admin初始化补充:

# config/initializers/active_admin.rb 
require 'admin/analytics_footer' 

ActiveAdmin.setup do |config| 
    config.namespace :admin do |admin| 
    config.view_factory.footer = Admin::AnalyticsFooter 
    end 
end 

而且定义视图:

# lib/admin/analytics_footer.rb 
module Admin 
    class AnalyticsFooter < ActiveAdmin::Views::Footer 
    def build 
     super 
     render('layouts/analytics') 
    end 
    end 
end 

,把你的GA跟踪代码app/views/layouts/_analytics.html.erb。服务器重新启动后,代码片段应该出现在页面末尾的页脚内。

+0

嘿,这个工作与turbolinks? – bnussey 2014-10-03 11:25:15

+0

@bnussey尽管我还没有尝试过,但我希望它能像turbolinks一样工作,就像呈现分析代码片段的任何其他方式一样。无论呈现的内容如何,​​Turbolink或多或少都会替换文档的主体。 – tfischbach 2014-11-05 11:54:21

0

这是为我工作。我在activeadmin网站上找到它(https://activeadmin.info/10-custom-pages.html)。

# app/admin/calendar.rb 
ActiveAdmin.register_page "Calendar" do 
    index do 
    render partial: 'calendar' 
    end 
end 

# app/views/admin/calendar/_calendar.html.erb 
<h1>Hello</h1> 
<script> 
</script> 
相关问题