4

こんにちは、アクティブな管理者に独自のコントローラーを実装しようとしています + アクティブな管理者のフッター/ヘッダー/ブレッドクラムを継承する必要があります

通常のインデックス アクション用に独自のテンプレート ファイルが必要です ... パラメーターを渡して関連する統計情報を表示します (Google チャート API を使用してテンプレートでそれらをレンダリングします)

私が遭遇した問題は、私を大いに助けないサイドバーを最初から期待する方法がないということです..

そのビューに7つの異なるグラフを表示する必要があります

それは私を狂気に駆り立てるので、どんなアイデアでも本当に感謝しています

ありがとうピエール

4

2 に答える 2

3

前の回答に続きます。実際のモデルを (モデル フォルダーで) 定義する必要さえありません。これを機能させるために必要な最小限のコードは次のとおりです。

すべてが 1 つのファイルに: app/admin/charts.rb

class Chart < ActiveRecord::Base
end

ActiveAdmin.register Chart do
  config.comments = false
  config.clear_action_items!
  before_filter do @skip_sidebar = true end


  controller do
    def index
      params[:action] = "Google Charts" # this sets the page title (so it doesnt just render 'index')
      render 'admin/charts/index', :layout => 'active_admin' # renders the index view in app/views/admin/charts
    end
  end
end

この要点に使用しました: https://gist.github.com/1644526

于 2012-01-20T03:00:48.220 に答える
2

これが私にとってはうまくいきました。コードブロックのViewLoggerを正しい名前に置き換えるだけです。これにより、データベースにダミー テーブルを作成する必要がなくなります。

このコンテンツでファイル /app/models/viewlogger.rb を作成します。より高度なテーブルレス モデルについては、http://keithmcdonnell.net/activerecord_tableless_model_gem.html をチェックする、自分の洞察を一緒にググってください。

class Viewlogger < ActiveRecord::Base

  def self.columns 
    @columns ||= []
  end

  # ...  

end

/config/initializers/inflections.rb にエントリを追加します

ActiveSupport::Inflector.inflections do |inflect|
  inflect.uncountable %w( viewlogger )
end

config/routes.rb で、viewlogger のルートを設定します。

match '/admin/viewlogger' => 'admin/viewlogger#index', :as => :admin_viewlogger

次のように activeadmin register ブロックを定式化できるようになりました (適切な場所にパーシャル ビューを作成するようにしてください)。

ActiveAdmin.register Viewlogger do
  config.comments = false
  before_filter do @skip_sidebar = true end
  # menu false
  config.clear_action_items!   # this will prevent the 'new button' showing up


  controller do
    def index
      # some hopefully useful code
      render 'admin/viewlogger/index', :layout => 'active_admin'
    end
  end   

終わり

于 2012-01-12T14:00:43.173 に答える