2012-07-11 14 views
18

Mam następujący fragment koduMecz opcja w wybranych postaci z wartości logicznych

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

Symbol: aktywny jest logiczna typu var. Jak mogę dopasować Active => 1/True, i Inactive => 0/False, do dodawania bazy danych.

Przepraszamy za pytanie o newbie, ale nie mogę tego rozgryźć.

Odpowiedz

44

Możesz podać parę wartości dla każdej opcji: pierwszy zostanie wykorzystany jako etykieta (wewnętrznej tekstu <option> tag), drugi będzie używany jako value atrybut:

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

Będzie uczynić coś jak:

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

Wystarczy popatrzeć na docs dla select i options_for_select.

3

Niewielkie rozszerzenie wcześniejszej odpowiedzi, jeśli używasz menu rozwijanego.

Potrzebowałem użyć "options_for_select". Ponadto ": selected" przechowuje wartość, gdy następnym razem powrócisz do formularza.

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