我使用 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
这会导致显示空页面的链接。
分页和加入总是会稍微困难一些has_many
or has_and_belongs_to_many
与 will_paginate 或任何分页解决方案的关联。
如果不需要查询已加入的关联,可以将其删除。您失去了在一个查询中获取关联订单项的好处,但您并没有失去that much.
如果您需要对其进行查询,并且可能您希望仅包含订单项的销售,则需要将 :count 选项传递给 paginate 调用,该调用指定用于调用以计算其中有多少项的其他选项是。在你的情况下:
@sales.paginate(:per_page => 4,
:page => params[page],
:count => {:group => 'sales.id' })
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)