0

我想根据变量的值在选择列表中设置值。

这里的变量是@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) %>

我尝试了以下几种变体,但没有运气。

关于如何让这个工作正常的任何建议?

谢谢

4

1 回答 1

3

首先检查@email_setting.frequency 的值是否。实际上,如果您将 'email_setting'、'frequency' 作为前 2 个参数,则所选值将为@email_setting.frequency. 我相信它实际上是整数(如1),并且您提供字符串作为选项值(如"1")。这应该是它没有被选中的原因。尝试

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

select的第4个参数是options,第5个参数是html_options。因此,如果您想提供诸如 selected、class 之类的 html 选项,您应该通过将第 4 个参数提供options为空散列来将其作为第 5 个参数提供。如果你真的想给 selected 也,你应该这样做:

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

但在你的情况下,第一个就足够了。

请参阅选择 rails api

于 2011-03-16T02:11:57.813 回答