Ошибка драгоценного камня Will_Paginate неопределенный метод "total_pages"
Гем will_paginate не работает после того, как я изменил запрос, чтобы получить последователей /follow_users
Как я могу использовать will_paginate с этим??
@users = @user.reverse_relationships.order("created_at DESC").collect { |r| User.find(r.follower) }
Я пробовал несколько вариантов, таких как:
@users = @user.reverse_relationships.order("created_at DESC").collect { |r| User.find(r.follower) }
@users = @users.paginate(:page => params[:page])
@users = @user.reverse_relationships.paginate(:page => params[:page]).order("created_at DESC").collect { |r| User.find(r.follower) }
Каждый раз, когда я получаю ошибку, как undefined method "total_pages"
или же undefined method "paginate"
1 ответ
Вы должны изменить порядок запроса, чтобы вы могли позвонить paginate
а также total_pages
в экземпляре ActiveRecord::Relation, как того требует will_paginate.
Это позволит удалить collect
который эффективно превращает ваше отношение в массив.
Это может быть сделано с чем-то вроде:
@relationships = @user.reverse_relationships.includes(:follower).order("created_at DESC")
А затем просто получить доступ к последователю каждого отношения по вашему мнению или еще много чего.
Это также будет более эффективным - вы не будете выдавать отдельный запрос для каждого подписчика, как это делает ваш оригинальный код.