2013-10-29 45 views
15

上次我遇到了問題active_admin。在我有5000多行數據的表格中,它的工作速度非常緩慢。我如何優化它?也許有人知道這個模塊的一些異步加載插件?如何優化active_admin

回答

35

有幾件事你可以做。

默認情況下,Active Admin將關聯加載爲索引頁上的下拉篩選器。如果這些過濾器沒有被使用,它將幫助刪除它們,因爲它們實例化該模型的每個記錄來構建下拉列表。

ActiveAdmin.register Post do 
    remove_filter :categories 
end 

如果您的索引頁包含依賴於關聯記錄的列,則有助於加載它們。

ActiveAdmin.register Post do 
    controller do 
    def scoped_collection 
     super.includes :author, :publisher 
    end 
    end 
end 

這並不真正適用,因爲你只能有5000條記錄,但如果你去的地方,甚至表的DB COUNT需要很長的時間點,您可能需要禁用在底部計數索引頁面的右側。 (此功能是在0.6.1中添加的)

ActiveAdmin.register Post do 
    index pagination_total: false 
end 
+3

謝謝!這是一個很好的答案! – itdxer

+0

將過濾器設置爲類似'filter:association,比如:select,collection: - > {Association.pluck:id}'...與爲每個'association'實例化一個Ruby對象相比,如果您無條件地過濾「關聯」,行是否爲默認行? – mecampbellsoup

+0

是的,這會有很大的幫助。但是,您還需要確保同時傳遞一個人性化的名稱。例如:'Author.pluck(:name,:id)' – seanlinsley