ruby-on-rails - will_paginate 报告太多条目和页面

标签 ruby-on-rails will-paginate

我使用 will_paginate 来显示从包含联接和 select 语句的查询返回的数据。当我对数据进行分页时,条目数等于执行 select 语句之前的条目数,即使在查询之后调用分页,并且查询包含的元素比分页报告少。

@sales = Sale.joins(:line_items).where(company_id: company_id, status: ['Complete', 'Voided'], time: (midnight_1..midnight_2)).order('id DESC')
puts @sales.length

14

@sales = @sales.select('distinct sales.*')
puts @sales.length

4

@sales.paginate(:per_page => 4, :page => params[page])
puts @sales.total_entries

14

这会导致显示空页面的链接。

最佳答案

分页并加入与 will_paginate 或任何分页解决方案的 has_manyhas_and_belongs_to_many 关联总是会稍微困难一些。

如果您不需要查询已加入的关联,可以将其删除。您会失去在一个查询中获取关联订单项的好处,但不会失去那么多。

如果您需要对其进行查询,并且可能您想要仅包含订单项的销售,则需要将 :count 选项传递给 paginate 调用,该选项指定用于调用计数的其他选项有很多项目。对于您的情况:

@sales.paginate(:per_page => 4, 
    :page => params[page], 
    :count => {:group => 'sales.id' })

关于ruby-on-rails - will_paginate 报告太多条目和页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10740437/

相关文章:

javascript - rails 3 : How to send Javascript code from Controller?

ruby-on-rails - 将分页 : How change default page in links

ruby-on-rails - will_paginate NoMethodError

ruby-on-rails - Rails 3- Will_Paginate - 使分页链接更像 GMAIL

ruby-on-rails - sqlite3数据库中的字符串/文本存储限制

ruby-on-rails - Rspec:测试救援

ruby-on-rails - ActiveModel::Errors 转换错误消息的属性部分?

ruby-on-rails - rails : query results are not updated after changing data in sqlite

css - Will_paginate 不渲染 Ruby On Rails

ruby-on-rails - 如何从 Rails api-pagination gem 访问 React 中的响应 header