gpt4 book ai didi

sorting - mongoid , will_paginate ,排序不适用于 Mongoid 标准 DSL

转载 作者:行者123 更新时间:2023-12-01 11:07:02 28 4
gpt4 key购买 nike

根据 github 上 mongoid 的自述文件,我可以做一些奇特的查询,比如Person.select(:first_name, :last_name).where(:title => "Sir").skip(10).limit(10).paginate

我结合 will_paginate (3.0.pre2) 尝试了这个

@companies = Company.paginate(:per_page=>5, :page=>params[:page], :sort => [sort_column, sort_direction])

---> 工作正常

@companies = Company.all.paginate(:per_page=>5, :page=>params[:page], :sort => [sort_column, sort_direction])

--->排序不再有效

我试过了

@companies = Company.where(:name=>/^#{params[:search]}/).paginate( :per_page=>5, :page=>params[:page], :sort => [sort_column, sort_direction])

--> 不起作用

然后

@companies = Company.paginate(:conditions=>{:name=>/^#{params[:search]}/}, :per_page=>5, :page=>params[:page], :sort => [sort_column, sort_direction])

---> 作品

但我认为搜索功能应该在模型中而不是在 Controller 中! ?

最佳答案

解决方法:

不要在分页中使用排序,而是使用 order_by()。例如:

公司模式:

def self.search(search)
if !search.blank?
where(:name => /^#{search}/)
else
all
end
end

公司控制人(索引):

 @companies = Company.search(params[:search]).order_by([sort_column, sort_direction]).paginate(:per_page=>5, :page=>params[:page])

关于sorting - mongoid , will_paginate ,排序不适用于 Mongoid 标准 DSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4440921/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com