2011-06-26 11 views
1

私はpriorityフィールドに「緊急」「高」「普通」「低」の4つのオプションがあります。will_paginate - 非常に具体的な注文

私は、レコードのテーブルに表示され、このフィールドを持っており、次のように私はwill_paginateの順序付けを使用しています:

@projects = @company.projects.paginate :page => params[:page], :order => (sort_column + " " + sort_direction) 

private 
def sort_column 
    ['priority', 'name'].include?(params[:sort]) ? params[:sort] : "priority" 
end 

典型的な順序は、上記のように私に与える:

  1. ハイ
  2. ノーマル
  3. 緊急

この注文は間違っています。この列を緊急、高、普通、低に具体的に注文するにはどうすればよいですか?

答えて

2

Railsにはこれを行うのが簡単なのかどうかはわかりませんが、通常はそれが完了したと見なされる方法は、単に整数のオーダーフィールドと共に優先順位を保持する別のテーブルを持つことです。次に、そのテーブルに結合し、整数フィールドで順序付けします。

0

私はあなたがそれを実装するソートデータ列は非常に簡単にし、このscreencast.

を見てみることをお勧めしたいと思います。

お手伝いします。

0

はい、DBは辞書順で優先順位をソートしています。最も簡単な解決方法は、文字列の優先順位を整数の優先順位にマップし、それをソートすることです - @jdcが示唆するように。

私はおそらく別のテーブルに優先順位を格納しておかないといけません。なぜなら、参加する必要はないので、数字の優先順位を新しい列に格納するだけです。

しかし、アイデアは同じです。

関連する問題