2010-07-09 18 views
6

tengo una de la siguiente manera:¿Cómo puedo agregar un cuadro combinado usando RoR helper?

<% 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 %>    

En la base de datos, el papel es un campo "Char". Lo quiero diferente de un campo de texto, el usuario puede seleccionar "Profesor", "Estudiante", si el usuario selecciona "Profesor", la base de datos almacenará "T", de lo contrario, almacenará "S". ¿Como lo puedo hacer? Es necesario que agregue una tabla de "Función de usuario" en la base de datos y luego establecer una relación con el usuario. Pero es necesario hacerlo de esta manera? Gracias.

+3

Esta pregunta llegaron a la parte superior de Google "carriles cuadro combinado". En realidad, lo que desea es "menú desplegable" o "seleccionar", no "cuadro combinado" (http://stackoverflow.com/questions/2176297/is-there-any-difference-between-drop-down-box-and- combo-box) – mirelon

Respuesta

16

Ref select y options_for_select

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

Creo que probablemente quiso decir 'f.select' en lugar de' f.select_tag', ¿verdad? - porque tiene la instancia del generador de formularios 'f'. – bjg

+0

@bjg: - Sí, me doy cuenta de que luego edito mi respuesta. de todos modos Thanx – Salil

Cuestiones relacionadas