5

アクティブな管理者対応のRailsアプリケーションで分析を行いたいと思います。そのためには、レイアウトファイルのタグの直前にいくつか<script>のコードを貼り付ける必要があります。残念ながら、ActiveAdminは独自のレイアウトファイルをレンダリングするため、レイアウトファイルは効果がないように見えるため、これを行うことはできません。<noscript></body>application.html

カスタムHTMLコードを挿入できるフック/場所はありますか?

4

3 に答える 3

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。サーバーの再起動後、スニペットはページの最後のフッター内に表示されます。

于 2014-07-23T14:24:47.217 に答える
2

よし、最初にレポジトリを 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 pulling とマージを行う必要があることを十分に認識しています。

私はこのメソッドを jquery-ui-rails プラグインと別の gem で使用しました。それは素晴らしく機能し、さらに、必要なフックを gem 自体に追加すると、gem に貢献することができます。幸運を!

- - 編集 - -

コメントで指摘したように、activeadmin は期待どおりに機能しませんが、それでも簡単に修正できるので心配はいりません。内部では、activeadmin はarbre、同じ開発者によって作成および維持されているものを使用します。

https://github.com/gregbell/arbre、それは単なるDOMruby​​ 用のライブラリです。

だからあなたがしなければならないことはこれです:

クローンしたばかりのactiveadminディレクトリ内のこのファイルに向かいますlib/active_admin/views/footer.rb

これは、activeadmin アプリケーションのフッターです。メソッド内でわかるように、buildメソッドなどの内部に挿入してadd_scripts以下に追加できます。

def add_scripts
  script :src => 'http://yoursource.com'
end

構文がどのように流れるかは完全にはわかりarbreませんが、理解するのは難しくありません。

幸運を!

于 2013-02-17T21:30:32.140 に答える