2013-02-17 40 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> 
相關問題