2010-12-14 5 views
3

githubのmongoidのreadmeによると、 Person.select(:first_name、:last_name).where(:title => "Sir")のような空想的なクエリを実行できます.SKIP(10).limit(10)iはwill_paginate(3.0.pre2)との組み合わせでこの試みmongoid、will_paginate、ソングはMongoid基準では動作しませんDSL

を.paginate

@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]) 

作品 - →ソートする> doesntの仕事

その後、

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

--->

に動作しますが、私は検索機能がであるべきだと思う - esnt仕事はもう

iは

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

が試しましたコントローラーにないモデル! ?

答えて

6

ソリューション:

代わり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]) 
関連する問題