我正在开发一个搜索用户数据库的 Rails 应用程序。因为搜索相当复杂,所以我有一个搜索模型,它存储不同的搜索参数,并且该模型中的结果方法实际上将查询放在一起并返回一个对象数组。
既然search和results中返回的对象没有关系,那么是否还可以用will_paginate对结果进行分页呢?我会以错误的方式解决这个问题吗?
我正在开发一个搜索用户数据库的 Rails 应用程序。因为搜索相当复杂,所以我有一个搜索模型,它存储不同的搜索参数,并且该模型中的结果方法实际上将查询放在一起并返回一个对象数组。
既然search和results中返回的对象没有关系,那么是否还可以用will_paginate对结果进行分页呢?我会以错误的方式解决这个问题吗?
应该可以做你所做的,而不需要对数组进行分页。根据文档:
# paginate in Active Record now returns a Relation
Post.where(:published => true).paginate(:page => params[:page]).order('id DESC')
# the new, shorter page() method
Post.order('created_at DESC').page(params[:page])
((来自https://github.com/mislav/will_paginate/wiki))
...所以你应该能够创建你的“哪里”,甚至作为一个模型方法,然后对模型方法的结果进行分页。
如果绝对需要,您可以根据以下说明对数组进行分页:
https://github.com/mislav/will_paginate/wiki/Backwards-incompatibility#willpaginatecollection