21

我有以下一段代码

%br
= f.label :active, 'Status'
= f.select :active, ['Active','Inactive']

符号 :active 是一个布尔类型的 var。我如何匹配 Active => 1/True 和 Inactive => 0/False 来添加数据库。

对不起新手问题,但我无法弄清楚。

4

2 回答 2

55

您可以为每个选项提供一对值:第一个将用作标签(标签的内部文本<option>),第二个将用作value属性:

= f.select :active, [['Active', true], ['Inactive', false]]

它会呈现如下内容:

<select name="model[active]">
  <option value="true">Active</option>
  <option value="false">Inactive</option>
</select>

查看 和 的select文档options_for_select

于 2012-07-11T10:57:43.213 回答
4

如果您使用的是下拉菜单,则为早期答案的一个小扩展。

我需要使用“options_for_select”。此外,":selected" 存储下次返回表单时的值。

<%= f.select(:active, options_for_select([['Active', true], ['Inactive', false]], {:selected => @symbol.active}),:prompt => "Select") %>
于 2017-03-05T04:23:54.083 回答