Ruby on rails 是否可以将will_paginate与GROUP BY一起使用?
我有一个巨大的数据库,我想通过使用will_paginate来减少查询响应时间 我试图将我的条目按列分组,然后使用will_paginate将结果放入不同的页面 我试着这么做Ruby on rails 是否可以将will_paginate与GROUP BY一起使用?,ruby-on-rails,will-paginate,Ruby On Rails,Will Paginate,我有一个巨大的数据库,我想通过使用will_paginate来减少查询响应时间 我试图将我的条目按列分组,然后使用will_paginate将结果放入不同的页面 我试着这么做 @list= Persons.find_by_sql(select).group_by {|t| t.gender} @detail= @list.paginate(:page => params[:page], :per_page => 30) 但它给了我这个错误:(未定义的方法paginate for):
@list= Persons.find_by_sql(select).group_by {|t| t.gender}
@detail= @list.paginate(:page => params[:page], :per_page => 30)
但它给了我这个错误:(未定义的方法paginate for):
有人知道如何解决这个问题吗
[补充资料]
will_paginate论坛上有人说:
因为您已经必须从中加载数据库中的所有用户
为了进行分组,我的建议是忘记
分页并按原样输出
这是否意味着在使用will_paginate时使用GROUP_BY毫无意义
@paginated_lists = Persons.find_by_sql(select).paginate(:page => params[:page], :per_page => 30)
@details = @paginated_lists.to_a.group_by { |t| t.gender }
试试这个,它应该对我有用:)使用@paginated_list进行分页。,仅供参考。看起来
find_by_sql
方法是导致查询返回哈希而不是AR对象的原因。根据您在select
变量中传递的条件,您可能可以更改代码以生成AR对象,以便使用paginate
方法。查看活动记录查询指南:@naliwajek谢谢链接,非常有用@乔丹安德烈,谢谢你的解释!有趣,正是我想要的。谢谢