Ruby on rails 活动管理-如何在之前添加自定义脚本</车身>;标签?
我想对我的活动管理启用的rails应用程序进行一些分析。为此,我需要在布局文件中的Ruby on rails 活动管理-如何在之前添加自定义脚本</车身>;标签?,ruby-on-rails,activeadmin,Ruby On Rails,Activeadmin,我想对我的活动管理启用的rails应用程序进行一些分析。为此,我需要在布局文件中的标记之前粘贴一些和代码。不幸的是,我不能这样做,因为application.htmllayout文件似乎无效,因为ActiveAdmin呈现了自己的布局文件 是否有一个钩子/位置可以插入自定义html代码?好的,首先你必须将存储库克隆到你的rails应用程序中,通常你会将它放在供应商目录中,但rails会抛出这个恼人的警告,它会反对使用供应商目录样式的目录,如果您打算使用3.*版本进行生产,这并不重要,所以只需在r
标记之前粘贴一些
和
代码。不幸的是,我不能这样做,因为application.html
layout文件似乎无效,因为ActiveAdmin呈现了自己的布局文件
是否有一个钩子/位置可以插入自定义html代码?好的,首先你必须将存储库克隆到你的rails应用程序中,通常你会将它放在供应商目录中,但rails会抛出这个恼人的警告,它会反对使用供应商目录样式的目录,如果您打算使用3.*版本进行生产,这并不重要,所以只需在rails应用程序的供应商或lib目录中执行此操作即可
git克隆git://github.com/gregbell/active_admin.git
现在更改您的gem文件
,并从您设置的目录加载gem
gem'activeadmin',:path=>lib/activeadmin'
现在您有了自己版本的activeadmin,因此无论您需要编辑什么,都可以直接从该目录进行编辑,包括更改绑定的默认布局
几句忠告:
尽管此方法允许您更多地自定义活动管理员,但您完全知道,要将其更新为较新版本,您需要执行一些git pull
ing操作,并在必要时进行合并
我在jQueryUIRails插件和另一个gem中使用了这种方法,它工作得非常出色,而且如果您将想要的钩子添加到gem本身,您还可以为gem做出贡献。
祝你好运
----编辑----
正如您在评论中所指出的,activeadmin并不像您期望的那样工作,但不用担心,它仍然是一个简单的解决方案。
在幕后,activeadmin使用了一种叫做arbre
的东西,它是由同一个开发人员创建和维护的
https://github.com/gregbell/arbre
,它只是ruby的DOM
库
所以你要做的是:
转到刚才克隆的activeadmin目录中的这个文件lib/active\u admin/views/footer.rb
这是activeadmin应用程序的页脚,您可以在build
方法中看到,您可以在add\u scripts
方法和下面的add方法中插入
def add_scripts
script :src => 'http://yoursource.com'
end
我不完全确定arbre
语法是如何流动的,但应该不难理解
祝你好运 使用ActiveAdmin 0.6.0和Rails 4.0.5进行测试
您还可以覆盖活动管理员用于呈现页脚的视图。在您的活动\u 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
#lib/admin/analytics_footer.rb
模块管理员
类AnalyticsFooter
并将ga跟踪代码放入
app/views/layouts/_analytics.html.erb
。服务器重新启动后,代码段应该出现在页面末尾的页脚内。这对我来说很有用。我在activeadmin站点()上找到了它
#app/admin/calendar.rb
ActiveAdmin.register\u页面“日历”do
索引do
渲染部分:“日历”
结束
结束
#app/views/admin/calendar/_calendar.html.erb
你好
您可以克隆git存储库并从源代码中将其捆绑,这对您来说是一个足够好的解决方案吗?我会给你写一篇关于如何做的演练,如果是这样的话。@Guy好吧,如果是这样的话,请回答这个问题。我在app/views/layout下签入了布局文件的活动管理源。我只看到一个名为active_admin.html.arb的文件,其中只有一行。不知道如何在那里插入我的脚本!进一步扩展了我的答案:-)虽然我没有直接用你的答案回答我所问的具体问题,但它有助于定制许多其他东西。现在接受它。非常感谢!是的,这是可行的,但分叉主动管理应该是最后的选择;这对于进行一个小的定制来说太过分了。@b尽管我还没有尝试过,但我希望它能够与turbolinks一起工作,就像其他任何呈现分析片段的方式一样。无论内容如何呈现,TurboLink或多或少都会替换文档正文。
# 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>