2011-02-08 12 views
5

Tengo algo como esto:¿Cómo ordenar el hash options_for_select?

options_for_select({ "1 - optimal" => 1, "2 - ausreichend" => 2, "3 - verbesserungsfähig" => 3, "4 - nicht ausreichend" => 4, "5 - gar nicht" => 5}) 

Carriles no ordena estas entradas en la salida. ¿Cómo puedo lograr que el campo de selección sea ordenado numéricamente?

Respuesta

6

Creo en Ruby1.9, esto funcionaría como usted pretende (los hashes conservan su orden de inserción), entonces si usa 1.9 es una opción, entonces ha terminado.

De lo contrario, puede utilizar una matriz en lugar de un hash:

options_for_select([["1 - optimal", 1], ["2 - ausreichend", 2], ..., ["5 - gar nicht", 5]]) 
+0

Gracias, eso fue todo. Excepto por los corchetes olvidados en su código. ¿Podría corregir esto para el otro mundo? ;-) –

Cuestiones relacionadas