我正在使用Searchkick和Pagy gem来对我的搜索结果进行分页,如果我只在一个模型上搜索和分页,它会很好用,但是当我需要组合多个模型时,我不知道如何使用 Pagy进入一组 Searchkick 搜索结果。
我尝试使用 Pagy 的“额外数组”将所有单独的 Searchkick 模型查询组合到一个数组中,然后遍历视图中的结果,但这并没有返回任何搜索结果。
这是适用于单个模型的控制器代码:
query = params[:q].presence || "*"
results = BlogPost.pagy_search(query, suggest: true, per_page: 20)
@pagy, @results = pagy_searchkick(results, items: 10)
在视图中:
<%= pagy_nav(@pagy).html_safe %>
以下是跨多个模型的组合 Searchkick 查询,但它没有分页:
@search_results = Searchkick.search(query, models: [PressRelease, BlogPost, User])
那么,我应该如何跨多个模型进行分页呢?Pagy 的“ Array Extra ”文档警告:
如果数组中的数据来自某个数据库或其他持久存储(即不是一些内存存储),那么您绝对应该检查您的代码
这正是我想要做的。使用 Pagy 对来自多个模型的 Searchkick 结果进行分页似乎应该是可能的。如果您不应该使用 Pagy 数组来执行此操作,那么您应该如何执行此操作?