web-dev-qa-db-fra.com

Comment obtenir le nombre total après la pagination Kaminari

J'utilise Rails 3.2. Je pagine mes résultats en utilisant .page (1) .per_page (10)

comme

@users = User.method().page(1).per_page(10)

Maintenant, comment trouver le nombre total d'utilisateurs de la pagination

Comme parce que @users.count donne 1 à partir de la première page et non le nombre total

Comment obtenir le nombre total d'utilisateurs même après la pagination

ÉDITER : @users.total_count donne le nombre entier paginé

51
useranon

Comme mentionné dans la question, vous pouvez obtenir le nombre total des enregistrements avec

@users.total_count

J'ai ajouté cela comme une réponse par souci d'exhaustivité.

89
Jon Cairns

User.count vous donnerait le nombre, mais il atteindrait la base de données. Si vous utilisez mongodb @ user.length vous donnera le nombre total

0
Abhay Kumar

Vous pouvez utiliser total_count.

Cependant, si vous essayez d'obtenir le nombre total pour chaque page, c'est-à-dire quelque chose comme:

20 of 135 results

puis total_count renverra simplement 135, pas le nombre de résultats sur la page.

Si vous voulez gérer ce cas ainsi que le cas où le nombre de résultats est inférieur au nombre de résultats de pagination, alors j'irais avec quelque chose comme ceci:

(per_size > @users.total_count) ? @users.total_count : per_size

per_size est la valeur que vous définissez pour votre portée per ( docs here ).

0
DaniG2k