2013-01-18 18 views
24

Otrzymuję listę obiektów z mojej aplikacji Rails i używam will_paginate do strony jak zwykle, a następnie mam małą metodę używaną do zapisywania szczegółów wyszukiwania do bazy danych:Uzyskiwanie całkowitej liczby wyników z zapytania Railsowego przy użyciu 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) 

Problem polega na tym, że liczba wyników wyszukiwania (@ douments.count) zawsze wynosi < = per_page dla woli_paginacji.

Rozumiem, dlaczego tak jest, ale czy istnieje sposób obejścia go bez dwukrotnego uruchamiania kwerendy, raz przy użyciu opcji will_paginate i raz bez?

Odpowiedz

62

Wypróbuj <%[email protected]_entries%>

+0

Świetne, dziękuję. Przyjmie za 9 minut, kiedy SO zezwoli na –

+0

Bez obaw .. :) –

+0

Niestety oznacza to drugie zapytanie SQL, w jaki sposób można to zrobić bez tego? – bcackerman