将选择形式的选项与布尔值匹配

时间:2012-07-11 10:46:04

标签: ruby-on-rails haml

我有以下代码

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

符号:active是布尔类型var。我怎样才能匹配Active => 1 / True,Inactive => 0 / False,用于数据库添加。

抱歉新手问题,但我无法弄清楚。

2 个答案:

答案 0 :(得分:48)

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

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

它会呈现如下内容:

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

查看selectoptions_for_select的文档。

答案 1 :(得分:3)

如果你正在使用下拉列表,那么早期答案的一小部分。

我需要使用&#34; options_for_select。&#34;此外,&#34;:已选择&#34;存储下次返回表单时的值。

<%= f.select(:active, options_for_select([['Active', true], ['Inactive', false]], {:selected => @symbol.active}),:prompt => "Select") %>