2012-04-27 18 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在模型上。 – 2012-04-27 12:35:45

+0

是的,你可以 - 但你必須弄清楚如何指定*優先級*。例如,您可以手動(在數組中)提取這三個名稱,將它們放在頂部,然後按字母順序取回其他名稱。 – 2012-04-27 12:55:23