2012-04-27 9 views
1

レールフォームにドロップダウンがあり、アルファベット順にすべての名前を注文したいと思います。しかし、私はまた、ドロップダウン内の最初の3つの名前が、連続した順序に関係なく常に同じになるようにしたいと思います。これをどうやって行うのですか?例(ジョン、ジェーンとピーターは常に優先順位を持つドロップダウンコンテンツ)については優先順位を含むレール形式のドロップダウンリスト

: ジョン
ジェーン
ピーター
アリソン
ベティ
キャシー
デビッド

私のドロップダウンリストがあります現在、以下のように定義されている。

<%= f.select :name_id, Name.all.map { |x| [x.name, x.id]}, :include_blank => 'Select a name' %> 

答えて

0

モデルNameにフィールドat_topがあり、John、Jane、Peterの場合はtrueに設定されているとします。それでは、あなたは:

Name.order('at_top DESC, name ASC') 
+0

このフィールドにat_topを付けないと、モデルには可能ですか? –

+0

はい、できますが、* priority *の指定方法を理解する必要があります。たとえば、3つの名前を手作業で(配列内に)取り出し、一番上に置き、アルファベット順に他の名前をフェッチすることができます。 –

関連する問題