2010-07-09 11 views
6

mam od tak:Jak mogę dodać pole kombi za pomocą pomocnika RoR?

<% form_for(@user) do |f| %> 
    <%= f.error_messages %> 

    <p> 
    <%= f.label :username %><br /> 
    <%= f.text_field :username %> 
    </p> 
    <p> 
    <%= f.label :email %><br /> 
    <%= f.text_field :email %> 
    </p> 
    <p> 
    <%= f.label :password %><br /> 
    <%= f.password_field :password %> 
    </p>    
<p> 
    <%= f.label :password_confirmation %><br /> 
    <%= f.password_field :password_confirmation %> 
    </p> 
    <p> 
     <%= f.label :role %> <br/> 
     <%= f.text_field :role%> 
    </p> 
    <p> 
    <%= f.submit 'Create' %> 
    </p> 
<% end %>    

w bazie danych, rola jest „Char” pole. Chcę, aby różniło się od pola tekstowego, użytkownik może wybrać "Nauczyciel", "Uczeń", jeśli użytkownik wybierze "Nauczyciel", baza danych będzie przechowywać "T", w przeciwnym razie będzie przechowywać "S". Jak mogę to zrobić? Konieczne jest dodanie do bazy danych tabeli "Rola użytkownika", a następnie nawiązanie relacji z użytkownikiem? Ale trzeba to zrobić w ten sposób? Dziękuję.

+3

To pytanie dotarł do szczytu google "szyny combobox". Właściwie to, czego chcesz, to "dropdown" lub "select", a nie "combobox" (http://stackoverflow.com/questions/2176297/is-there-any-difference-between-drop-down-box-and- combo-box) – mirelon

Odpowiedz

16

Ref select i options_for_select

<%= f.select :role, options_for_select([["Teacher", "t"], ["Student", "s"]]) %> 
+2

Myślę, że prawdopodobnie miałeś na myśli 'f.select' zamiast' f.select_tag', prawda? - ponieważ masz instancję tworzenia formularzy 'f'. – bjg

+0

@bjg: - uświadamiam sobie, że później edytuję swoją odpowiedź. w każdym razie Thanx – Salil

Powiązane problemy