Вы на правильном пути, но не совсем там.
В то время как последний аргумент для options_for_select
должен быть значением выбранной опции.Значение, которое вы вводите :weighting
, является символом, который не соответствует значению какой-либо из указанных вами опций.
Вам нужно будет указать фактическое значение.Если вы использовали объект экземпляра для построения формы как в
<%form_for @whatever do |o|%>
...
Вы можете просто использовать @whatever.weighting.to_s
как в:
<%= o.select :weighting, options_for_select([
["Correct", "4", {:class=>"bold"}],
["Good", "3"],
["Average", "2"],
["Poor", "1"],
["Incorrect", "0", {:class=>"bold"}] ], @whatever.weighting.to_s), {},
html_options = {:class => "listBox", :style=>"float:left;"} %>
В противном случае, есть способ получить объектблочная переменная формы o.Но это портит внутренние компоненты, которые могут измениться при обновлении.
Редактировать: В случае, когда вы работаете с полями для и несколькими частями, вы можете получить конкретный объект изпеременная блока конструктора форм. с помощью средства доступа к объекту.
Повторное использование приведенного выше примера примерно так, чтобы использовать текущий вес каждого дочернего экземпляра в разделе этого экземпляра формы.может также использоваться в частичных операциях.