baj*_*baj 3 sorting will-paginate mongoid
根据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])
Run Code Online (Sandbox Code Playgroud)
--->工作正常
@companies = Company.all.paginate(:per_page=>5, :page=>params[:page], :sort => [sort_column, sort_direction])
Run Code Online (Sandbox Code Playgroud)
--->排序不再起作用了
我试过了
@companies = Company.where(:name=>/^#{params[:search]}/).paginate( :per_page=>5, :page=>params[:page], :sort => [sort_column, sort_direction])
Run Code Online (Sandbox Code Playgroud)
- >不起作用
然后
@companies = Company.paginate(:conditions=>{:name=>/^#{params[:search]}/}, :per_page=>5, :page=>params[:page], :sort => [sort_column, sort_direction])
Run Code Online (Sandbox Code Playgroud)
--->工作
但我认为搜索功能应该在模型中而不是在控制器中!?
解:
不要在paginate中使用sort,order_by()而是使用.例如:
公司型号:
def self.search(search)
if !search.blank?
where(:name => /^#{search}/)
else
all
end
end
Run Code Online (Sandbox Code Playgroud)
公司控制人(指数):
@companies = Company.search(params[:search]).order_by([sort_column, sort_direction]).paginate(:per_page=>5, :page=>params[:page])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3024 次 |
| 最近记录: |