Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 是否可以将will_paginate与GROUP BY一起使用?_Ruby On Rails_Will Paginate - Fatal编程技术网

Ruby on rails 是否可以将will_paginate与GROUP BY一起使用?

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):

我有一个巨大的数据库,我想通过使用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):

有人知道如何解决这个问题吗

[补充资料]

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谢谢链接,非常有用@乔丹安德烈,谢谢你的解释!有趣,正是我想要的。谢谢