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

时间:2012-08-31 21:34:10

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

但它给了我这个错误:(undefined method paginate for<Hash:0x3de9930>):

任何人都知道如何解决这个问题?

[补充资料]

will_paginate论坛上有人说:

  

因为您必须从数据库中加载所有用户   为了执行group_by,我的建议只是忘记了   分页并按原样输出。

这是否意味着在使用will_paginate时没有意义使用GROUP_BY?

1 个答案:

答案 0 :(得分:2)

@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_lists进行分页。