アクティブな管理者対応のRailsアプリケーションで分析を行いたいと思います。そのためには、レイアウトファイルのタグの直前にいくつか<script>
のコードを貼り付ける必要があります。残念ながら、ActiveAdminは独自のレイアウトファイルをレンダリングするため、レイアウトファイルは効果がないように見えるため、これを行うことはできません。<noscript>
</body>
application.html
カスタムHTMLコードを挿入できるフック/場所はありますか?
アクティブな管理者対応のRailsアプリケーションで分析を行いたいと思います。そのためには、レイアウトファイルのタグの直前にいくつか<script>
のコードを貼り付ける必要があります。残念ながら、ActiveAdminは独自のレイアウトファイルをレンダリングするため、レイアウトファイルは効果がないように見えるため、これを行うことはできません。<noscript>
</body>
application.html
カスタムHTMLコードを挿入できるフック/場所はありますか?
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
。サーバーの再起動後、スニペットはページの最後のフッター内に表示されます。
よし、最初にレポジトリを Rails アプリにクローンしなければならない。通常は vendor ディレクトリに置くだろうが、Rails は、vendor ディレクトリスタイルのディレクトリの使用を非推奨にするという厄介な警告を投げる。これは、3.* バージョンで本番環境に移行する場合に非常に重要になるため、Rails アプリの vendor または lib ディレクトリでこれを行うだけです。
git clone git://github.com/gregbell/active_admin.git
変更Gemfile
して、設定したディレクトリから宝石をロードします
gem 'activeadmin', :path => 'lib/activeadmin'
これで、独自のバージョンの activeadmin が作成されたので、バンドルされているデフォルトのレイアウトの変更を含め、編集する必要があるものはすべて、そのディレクトリから直接実行できます。
いくつかのアドバイス:
この方法を使用すると、アクティブな管理者をはるかにカスタマイズできますが、新しいバージョンに更新するには、必要に応じていくつかのgit pull
ing とマージを行う必要があることを十分に認識しています。
私はこのメソッドを jquery-ui-rails プラグインと別の gem で使用しました。それは素晴らしく機能し、さらに、必要なフックを gem 自体に追加すると、gem に貢献することができます。幸運を!
- - 編集 - -
コメントで指摘したように、activeadmin は期待どおりに機能しませんが、それでも簡単に修正できるので心配はいりません。内部では、activeadmin はarbre
、同じ開発者によって作成および維持されているものを使用します。
https://github.com/gregbell/arbre
、それは単なるDOM
ruby 用のライブラリです。
だからあなたがしなければならないことはこれです:
クローンしたばかりのactiveadminディレクトリ内のこのファイルに向かいますlib/active_admin/views/footer.rb
これは、activeadmin アプリケーションのフッターです。メソッド内でわかるように、build
メソッドなどの内部に挿入してadd_scripts
以下に追加できます。
def add_scripts
script :src => 'http://yoursource.com'
end
構文がどのように流れるかは完全にはわかりarbre
ませんが、理解するのは難しくありません。
幸運を!