Getting total result count from Rails query using will_paginate

Christian Mayne picture Christian Mayne · Jan 18, 2013 · Viewed 13.5k times · Source

I get a list of objects from my Rails app, and use will_paginate to page as usual, and then I have a little method used to save details of the search to the database:

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 )

The problem is, the number of search results (@douments.count) is always <= per_page used for will_paginate.

I understand why this is, but is there a way around it without running the query twice, once with will_paginate and once without?

Answer

Yunwei.W picture Yunwei.W · Jan 18, 2013

Try <%[email protected]_entries%>