我想对我的活动管理启用的rails应用程序做一些分析。为此,我需要在我的布局文件中的</body>
标记之前粘贴一些<script>
和<noscript>
代码。不幸的是,由于ActiveAdmin呈现自己的布局文件,因此我无法做到这一点,因为application.html
布局文件似乎无效。Active Admin - 如何在</body>标记之前添加自定义脚本?
有没有可以插入自定义html代码的挂钩/位置?
我想对我的活动管理启用的rails应用程序做一些分析。为此,我需要在我的布局文件中的</body>
标记之前粘贴一些<script>
和<noscript>
代码。不幸的是,由于ActiveAdmin呈现自己的布局文件,因此我无法做到这一点,因为application.html
布局文件似乎无效。Active Admin - 如何在</body>标记之前添加自定义脚本?
有没有可以插入自定义html代码的挂钩/位置?
好的,首先你必须将资源库克隆到你的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
语法流,但它不应该是很难方法弄清楚。
祝你好运!
使用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
。服务器重新启动后,代码片段应该出现在页面末尾的页脚内。
嘿,这个工作与turbolinks? – bnussey 2014-10-03 11:25:15
@bnussey尽管我还没有尝试过,但我希望它能像turbolinks一样工作,就像呈现分析代码片段的任何其他方式一样。无论呈现的内容如何,Turbolink或多或少都会替换文档的主体。 – tfischbach 2014-11-05 11:54:21
这是为我工作。我在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>
您可以克隆git存储库并将其从源代码捆绑出来,这对您来说是一个足够好的解决方案吗?如果是的话,我会给你写一篇演讲。 – gmaliar 2013-02-17 21:19:04
@Guy很好,如果这是需要的,是的请。 – bragboy 2013-02-17 21:23:05