2012-07-11 5 views
18

I持って次のコードマッチブール値で選択フォームでオプション

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

記号:アクティブブール型VARです。データベースを追加するには、どうすれば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") %> 
関連する問題