4

私には2つの質問があります。ActiveRecordまたはThinkingSphinxからフェッチしたコレクションを並べ替える

  1. データベース/スフィンクスのすべてを再選択せずにActiveRecordまたはThinking Sphinxからコレクションをソートする方法はありますか? すなわち

    @models = Model.where("foo = :foo", {:foo => params[:foo]}) models.some_code_or_method_which_will_resort_everything

  2. (再フェッチすることなく、配列/コレクションをソートする)ろうそくの価値がこのゲームですか?どのオプションがパフォーマンスに優れているのだろうか。

ありがとうございます。

編集

ので、このゲームはろうそくの価値があるとき:

  • ページネーションを使用していない(Ajaxで
  • リフレッシュページのdiv(あなたはすべてのレコードを持っている必要があります)ドン

美術のためのアート

答えて

5

私はかなり確信している「ソート」は動作するはずです:2つ目の質問に答える

@models.sort! { |a,b| a.foo <=> b.foo } 

を、はい、それはありません。あなたのコレクション内のオブジェクトの量にはかなり依存しますが、一般的には通常はパフォーマンスが勝ちです

+1

データベース/スフィンクスコールの一部としてソートできませんか?そうすれば、DB/Sphinxはあなたのために大変な作業をします(Rubyコードよりも高速です)。また、ページングされた検索結果がページ区切りされてソートされることを意味します。最初は – pat

+0

、dbは高速でソートされます。しかし、同じデータセットが必要だが、別のものを注文する場合は、dbとruby ormの両方のクエリがもう1つ必要です。これは間違いなくルビーソートよりも遅いです –

関連する問題