2013-10-29 19 views

答えて

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、as::select、collection: - > {Association.pluck:id}'のように設定するほうがはるかに速いでしょう...それぞれの 'association'のためにRubyオブジェクトをインスタンス化するのではなく'filter:association'を無条件に実行すると、デフォルトでは行がありますか? – mecampbellsoup

+0

はい、それは大いに役立ちます。しかし、人間にやさしい名前を戻すことを確実にする必要があります。例: 'Author.pluck(:name、:id)' – seanlinsley