2013-01-18 14 views
24

Ottengo un elenco di oggetti dalla mia app Rails, e uso will_paginate alla pagina come al solito, e quindi ho un piccolo metodo utilizzato per salvare i dettagli della ricerca nel database:Ottenere il conteggio totale dei risultati dalla query Rails utilizzando will_paginate

per_page=10 
session[:search_params] = params[:search_people] 
@documents = Person.search_people(params[:search_people], params[:page], per_page) 

Search.create(:user_id  => (!current_user ? 0 : current_user.id), 
    :search_type => "Person", 
    :firstname => params[:search_people][:first_name], 
    :lastname => params[:search_people][:last_name], 
    :results  => @documents.count) 

Il problema è che il numero di risultati di ricerca (@ douments.count) è sempre < = per_page utilizzato per will_paginate.

Capisco perché questo è, ma c'è un modo per aggirarlo senza eseguire la query due volte, una volta con will_paginate e una volta senza?

risposta

62

Prova <%[email protected]_entries%>

+0

Brillante, grazie. Accetta in 9 minuti, quando SO consente –

+0

Nessun problema .. :) –

+0

Sfortunatamente ciò significa una seconda query SQL, un modo per farlo senza quello? – bcackerman