我的问题是,如果我将分页设置为大于1,则使用kaminari的分页将不起作用。仅当我每页设置1条记录时,才会显示分页栏。 如果我设置了
{
"events": [
{
"eventId": 41,
"eventName": "Movie",
"userList": [
{
"userId": 40,
"userName:"xyz",
"fullName":""
"isAdmin":True
},
{
"userId": 50,
"userName":"abc",
"fullName":"",
"isAdmin":False
}
]
}
]
}
我可以看到分页栏(但是只有两页要浏览,每页只有一条记录。)
如果我设置了
@p.result.page(params[:page]).per(1)
该栏不可见,但我可以在表中看到2条记录(或更多)。
嗯:我发现问题出在我的患者模型范围之内。 如果我不使用“ basic_info”,它将起作用。
@p.result.page(params[:page]).per(2) (or more)
为什么..?
在Patient.rb模型中,我有:
@p = Patient.basic_info.ransack(params[:q]) (No pagination bar)
@p = Patient.ransack(params[:q]) (it works)
在Patient_controller.rb中:
scope :basic_info, -> {
self.left_joins(hospitalizations: :surgery)
.distinct
.select("patients.id,first_name,
last_name,
gender,
MAX(surgeries.surgery_date) as most_recent_surgery")
.group("patients.id, first_name, last_name, gender")
}
患者的index.html.erb:
@p = Patient.basic_info.ransack(params[:q])
@patients = @p.result.page(params[:page]).per(2)
生成的记录是有限的(我在数据表视图中只能看到两行),没有错误,但不显示分页。
我正在使用Rails 5.02
如何解决此问题?
谢谢
答案 0 :(得分:0)
我找到了解决方法here。
更改“ basic_info”范围内的group by子句可以解决此问题:
来自
.group("patients.id, first_name, last_name, gender")
收件人
group(:id,:first_name,:last_name,:gender)