5

我有一个庞大的数据库,我想通过使用 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 没有意义?

4

1 回答 1

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

于 2015-09-01T10:36:44.083 回答