Will_Paginate gem error undefined method“total_pages”

时间:2014-03-05 03:19:15

标签: ruby-on-rails ruby-on-rails-4 will-paginate

在我更改查询以获取关注者/ follow_users之后,will_paginate gem无法正常工作

我如何使用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 个答案:

答案 0 :(得分:0)

您应该重新排序查询,以便可以调用ActiveRecord :: Relation实例上的paginatetotal_pages,这与will_paginate一样。

这将删除有效将您的关系转换为数组的collect

这可以通过以下方式完成:

@relationships = @user.reverse_relationships.includes(:follower).order("created_at DESC")

然后只需访问您视图中的每个关系的关注者或其他什么。

这也会更有效率 - 您不会像原始代码那样为每个关注者发出单独的查询。