私はかなり単純な関数を呼び出しています。何が起きているのか分からないようです。 (私はレール3.0.3と 'will_paginate'宝石のマスターブランチを使用しています)。私は、次のコードを持っている:Will_Paginateとorder節は機能しません。
results = Article.search(params) # returns an array of articles
@search_results = results.paginate :page => params[:page], :per_page=>8, :order => order_clause
は、どんなに私がorder_clause(例えば「article_titleのDESC」と「article_titleのASC」)作るもの、結果は同じ順序で常に同じではありません。だから、@search_results[0]
のようなものを使ってチェックすると、要素は常に同じです。私の見解では、彼らは明らかに常に同じものです。私は何かを完全に欠いていますか?
私はその何かばかげていると確信していますが、私は一晩中壁に頭を叩いています。どんな助けでも大歓迎です!検索句は次を行います:追加する
編集
#scopes
scope :text_search, lambda {|query|
{
:joins => "INNER JOIN users ON users.id IN (articles.writer_id, articles.buyer_id)",
:conditions => ["(articles.article_title LIKE :query) OR
(articles.description LIKE :query) OR
(users.first_name LIKE :query) OR
(users.last_name LIKE :query)", { :query => "%#{query}%" }]
}
}
scope :distinct, :select => "distinct articles.*"
#methods
def self.payout_search(dir, val)
return no_op if val.blank?
send("payment_amount_#{dir.gsub(/\s+/,'').underscore}", val)
end
def self.length_search(dir, val)
return no_op if val.blank?
send("min_words_#{dir.gsub(/\s+/,'').underscore}", val)
end
ありがとう:これらの人のそれぞれが、このようなsearchlogicベースの機能がある
def self.search(params)
full_text_search(params[:query].to_s).
category_search(params[:article_category].blank? ? '' : params[:article_category][:name]).
payout_search(params[:payout_direction], params[:payout_value]).
length_search(params[:length_direction], params[:length_value]).
pending.
distinct.
all
end
。オーダー句とあなた::
@posts = Post.paginate :page => params[:page], :order => 'created_at DESC'
は、この呼び出しはありませんオブジェクトと(Postオブジェクトにページ番号を付け、あなたがwill_paginateのgithubのページからの例を見れば
私は小さなテストケースを自分で作成しましたが、すべてがページネートでうまくいきました。おそらくあなたの注文句を無効にする可能性があるあなたのモデルの範囲がありますか?私が気づく唯一の他の事は、あなたが 'title'でソートすることを意味するモデル 'article'のための 'article_title'のあなたの命名でしょうか?そうでなければ、 'created_at desc'と 'created_at'で注文しようとしましたか? – AllDayer
検索コールの詳細を追加するように編集しました。 AllDayer-そこには何かが起こっているかもしれないとは思いますが、何がわからないのでしょうか。私はちょうど通常の検索を実行するとうまく動作します。 orderステートメントで呼び出さないと、記事のスコープはどのように上書きされますか? –