2014-11-02 12 views
6

Quando passo will_paginate un ActiveRelation, chiama sempre il suo metodo #count e colpisce il database per scoprire il numero totale di elementi. Ma questa operazione richiede tempo e ho il numero totale già memorizzato nella cache e pronto. Posso passare questo conteggio precalcolato a will_paginate e impedirgli di colpire il database?Rails: Impedisci a will_paginate di chiamare #count di ActiveRelation

ho provato l'opzione :count, ma è passato ad ActiveRecord come opzione:

active_relation.paginate(page: 2, per_page: 100, count: total_count) 

Grazie! :)

risposta

10

Passando il conteggio cache con :total_entries risolve il problema:

active_relation.paginate(page: 2, per_page: 100, total_entries: total_count)