2

目前我正在使用 Sunspot 从多个表中进行选择。我限制选择的记录,条件是创建日期必须在过去 5 天内。但是,我想更进一步,将选择的记录数限制为 20?有没有办法用太阳黑子做到这一点?我没有做任何花哨的分组或任何事情。只需选择属于各种模型的记录并将它们显示在屏幕上。

我当前的代码:

@updates = Sunspot.search(Upload,Help, User...) do
      with(:created_at).greater_than(5.days.ago)      
      order_by(:created_at, :desc)
end  

我尝试添加 Github 上自述文件中指定的“限制”子句,但这产生了一个未定义的方法错误,可能是因为我正在执行全局太阳黑子搜索,而不是搜索特定模型。

错误代码:

@updates = Sunspot.search(Upload,Help, User...) do
          with(:created_at).greater_than(5.days.ago)      
          order_by(:created_at, :desc)
          limit(20)
end 

错误信息:

undefined method `limit' for #<Sunspot::DSL::Search:0x0000000790b8c8>
4

1 回答 1

4

“限制”方法适用于“组”。请参阅关于组的自述文件部分。Sunspot 提供了分页功能(顺便说一句,与 kaminari gem一起工作就像一个魅力)。请参阅自述文件中有关 solr 分页的部分。具体来说,试试这个:

@updates = Sunspot.search(Upload,Help, User...) do
  with(:created_at).greater_than(5.days.ago)      
  order_by(:created_at, :desc)
  paginate page: 1, per_page: 20
end 
于 2012-06-12T20:30:35.883 回答