Ruby on rails 将分页gem错误未定义方法“总页数”
在我更改查询以获取关注者/关注用户后,will_paginate gem不起作用 我如何使用will_paginate来处理这个Ruby on rails 将分页gem错误未定义方法“总页数”,ruby-on-rails,ruby-on-rails-4,will-paginate,Ruby On Rails,Ruby On Rails 4,Will Paginate,在我更改查询以获取关注者/关注用户后,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 {
@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) }
每次我遇到一个错误,如未定义的方法total_pages或未定义的方法paginate,您应该重新排序查询,以便可以调用ActiveRecord::Relation实例上的paginate和total_pages,正如paginate所需 这将删除collect,它有效地将您的关系转换为数组 这可以通过以下方式实现:
@relationships = @user.reverse_relationships.includes(:follower).order("created_at DESC")
然后在你的观点或诸如此类的观点中访问每种关系的追随者
这也将更加有效-您不会像原始代码那样为每个跟随者发出单独的查询。可能是因为您的对象不再是ActiveRecord::Relation,而这正是分页挂起的原因。另外,在订购之前分页有点愚蠢。你为什么要收集,为什么你的关联结构不正确?正如你在那篇文章中看到的我的原始问题,我想获得一个用户的追随者和跟踪用户,并能够根据建立关系的时间对他们进行排序。我更喜欢只使用我的@users.followers和@users.followers\u用户,但这并没有将它们按创建关系的时间顺序排列。因此,我从另一篇文章中得到了答案,并想将其分页。如果有更好的答案,那么我很想知道。这给了我错误的参数类型符号预期Modulegack,我总是忘记它是包含还是包含。应该包括: