2012-12-17 65 views
0

我對我的一個項目使用active_admin,並且我有一些包含大量數據(+100,000條記錄)的表。如何導出沒有分頁的json/csv中的數據

它很好地瀏覽數據,但是當我想要導出數據(所以我可以在Excel中進行自定義匹配),並且我嘗試導出爲xml,它只導出當前頁面的記錄,而不是導出過濾中的總記錄。

module ActiveAdmin 
    class ResourceController 
    module Collection 
     module Pagination 
     def max_csv_records 
      1_000_000 
     end 
     end 
    end 
    end 
end 

但這不會爲xml/json工作,任何想法如何解決?

THX

回答

1

我落得這樣做另一隻猴子補丁,有可能是一個更好的辦法,但是這一個工程

module ActiveAdmin 
    class ResourceController 
    module Collection 
     module Pagination 
     def per_page 
      return 1_000_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 
endend 
1

這可能會幫助某些版本的主動管理的:

module ActiveAdmin::ResourceController::DataAccess 
    protected 

    def apply_pagination_with_csv(chain) 
    return chain if request.format == 'text/csv' 
    apply_pagination_without_csv(chain) 
    end 

    alias_method_chain :apply_pagination, :csv 
end 

要弄清楚這個補丁是否有效,你應該選擇已安裝的寶石this file