2012-07-11 83 views
18

我有下面的代碼段匹配在所選擇的形式與布爾值的選項

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

符號:活性是布爾型變種。我如何匹配Active => 1/True和Inactive => 0/False,以便添加數據庫。

對不起,新手問題,但我不明白。

回答

44

您可以提供對每個選項的值:首先將用作標籤(<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

3

如果您使用的是下拉菜單,則爲較早答案的一個小擴展。

我需要使用「options_for_select」。另外,「:selected」會存儲您下次返回表單時的值。

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