3

Active Adminにすでに存在する収集アクション「download_csv」を使用して、リソースのすべてのレコードをダウンロードしようとしています。ただし、このアクションは現在のページのコンテンツのみをダウンロードします。リソースをページングしたので、すべてのページからデータをダウンロードする必要があります。この問題にどのように取り組むことができるかについての提案はありますか?

4

3 に答える 3

5

将来のグーガーのためだけに。私の修正(現在のMaster 1.0.0preで動作)は、以下を追加することconfig/initializers/active_admin.rbです:

module ActiveAdmin
  class ResourceController
    module DataAccess
      # needed for current active admin master
      def max_per_page
        30_000
      end

      def per_page
        return 30_000 if %w(text/csv application/xml application/json).include?(request.format)

        return max_per_page if active_admin_config.paginate == false

        @per_page || active_admin_config.per_page
      end
    end
  end
end

必要に応じて最大値を交換してください。これは、csv、xml、およびjsonのダウンロードで機能します。

于 2014-01-16T01:43:57.230 に答える
2

この答えは少し遅れるかもしれませんが、うまくいけば誰かを助けることができます。

現在のアプリでこれをどのように機能させるかを次に示します。

csv do
  ModelName::ATTR_ADMIN_EXPORT.each do |sym|
    column sym
  end
end

そして、モデルでは、ATTR_ADMIN_EXPORTを次のように定義しています。

ATTR_ADMIN_EXPORT = [:name, :created_at]

これがあなたのために働くかどうか私に知らせてください!

于 2013-05-06T15:28:30.517 に答える
1

あなたはこれを試すことができます

before_filter :only => :index do
  @per_page = 10 unless request.format == 'text/csv'
end

このコードはまた、ページネーションを動的にします。

 before_filter :only => :index do
   if params[:pag].blank?
     @per_page = AdminSetting.where(:name => 'JobPagination').first.value.to_i unless request.format == 'text/csv'
   else
     @per_page = 10  
   end
 end
于 2013-05-17T02:40:19.187 に答える