Как установить значение списка выбора из переменной? - PullRequest
0 голосов
/ 16 марта 2011

Я хочу установить значение в списке выбора на основе значения переменной.

Переменная здесь @email_setting.frequency. На вид код выглядит так:

<%= select('email_setting', 'frequency','<option value="1">Daily</option>
                <option value="2">Immediately</option>
                <option value="3">Every Monday</option>
                <option value="4">Every Tuesday</option>
                <option value="5">Every Wednesday</option>
                <option value="6">Every Thursday</option>
                <option value="7">Every Friday</option>
                <option value="8">Every Saturday</option>
                <option value="9">Every Sunday</option>',
                :class=>'fl-space2 required size-120',
                :selected=>@email_setting.frequency) %>

Я попробовал несколько вариантов следующего без удачи.

Какой-нибудь совет о том, как это работает правильно?

спасибо

1 Ответ

3 голосов
/ 16 марта 2011

Сначала проверьте, соответствует ли значение @ email_setting.frequency.На самом деле, если вы дадите 'email_setting','quency 'в качестве первых 2 параметров, выбранное значение будет @email_setting.frequency.Я считаю, что это на самом деле целое число (например, 1), и вы предоставляете строку в качестве значения параметра (например, "1").Это должно быть причиной, почему он не выбран.Попробуйте

<%= select('email_setting', 'frequency', [['Daily', 1],['Immediately', 2], ..], {}, :class=>'fl-space2 required size-120' %>

Также 4-й параметр выбора равен options, а 5-й параметр - html_options.Поэтому, если вы хотите задать html-параметры, такие как selected, class, вы должны предоставить его в качестве 5-го параметра, предоставив 4-й параметр options в качестве пустого хеша.Если вы действительно хотите отдать выбранное также, вы должны сделать это следующим образом:

<%= select('email_setting', 'frequency', [['Daily', 1],['Immediately', 2], ..], {}, :class=>'fl-space2 required size-120', :selected => @email_setting.frequency %>

Но первого будет достаточно в вашем случае.*

...