Я полагаю, что в Ruby1.9 это будет работать так, как вы намереваетесь (хэши сохраняют свой порядок вставки), поэтому, если использовать опцию 1.9, то все готово.
В противном случае вы можете использовать массив вместохеша:
options_for_select([["1 - optimal", 1], ["2 - ausreichend", 2], ..., ["5 - gar nicht", 5]])