【发布时间】:2016-09-25 22:42:10
【问题描述】:
我有一个查询显示 3566 个结果,一切正常。 当我对其使用分页时,结果为 18,但在控制台中我看到它运行的查询正常
这是我的控制器
def listcontractors
@listcons = Contract.paginate(:page => params[:page], :per_page => 50).joins(:contractor)
.select("contractors.id,name,ico,city,country,count(resultinfo_id)")
.group("contractors.id,name,ico,city,country")
.order("name")
end
这是我在控制台中看到的查询,当我将它放入 psql 结果是好的
(22.2ms) SELECT COUNT(*) AS count_all, 承包商.id,名称,ico,城市,国家 AS contractors_id_name_ico_city_country FROM "contractors" INNER JOIN “合同” ON “合同”。“contractor_id”=“承包商”。“id”组 BYcontracts.id,name,ico,city,country 承包商负载 (30.8ms) 选择contractors.id,name,ico,city,country,count(resultinfo_id) as count FROM "contractors" INNER JOIN "contracts" ON "contracts"."contractor_id" = "contractors"."id" GROUP BY Contracts.id,name,ico,city,country 按名称订购 LIMIT 50 OFFSET 1050
当我从查询中删除 .paginate 部分时,结果还可以 我的模型是
class Contract < ActiveRecord::Base
belongs_to :resultinfo
belongs_to :contractor
end
class Contractor < ActiveRecord::Base
has_many :contracts
end
我尝试将查询切换到 Contractor.joins(:contract) 但问题相同,分页结果远低于应有的结果
知道为什么会这样吗? 谢谢
【问题讨论】:
标签: ruby-on-rails-4 will-paginate