Próbuję dokonać paginacji przetasowanej kwerendy ActiveRecord. Składnia robi to za pomocą gem Kaminari jest:Paginowanie przetasowanej kwerendy ActiveRecord
@users = Kaminari.paginate_array(User.all.shuffle).page(params[:page]).per(20)
Problem polega na tym, że User.all
jest ponownie tasuje na każde żądanie stronicowania, powodując zduplikowane rekordy nazywać. Czy istnieje sposób, aby zapobiec tego rodzaju duplikacji?
Wywołanie "User.all" może znacznie spowolnić twój serwer. Nawet jeśli masz tylko 100 użytkowników, będziesz płacić niepotrzebne koszty związane z doprowadzeniem wszystkich użytkowników do przestrzeni pamięci ruby w każdym żądaniu. –