我有一个庞大的数据库,我想通过使用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?
答案 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进行分页。