我想對我的活動管理啓用的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