2010-10-13 10 views
5

Estoy creando un formulario para permitir a un usuario CRUD un permiso de proyecto.Rails 3 - collection_select - ¿Entender PROMPT?

....

<% roles = Role.all %> 
<%= f.collection_select :role_id, roles, :id, :name, :prompt => true %> 

Problemas con lo anterior, al tiempo que hace que:

  1. Si un valor coincide, se muestra que en el menú desplegable como seleccionada, que es bueno. Problema, es si un usuario está configurado como ADMIN. Es fácil de usar el menú desplegable para cambiar el permiso a otra cosa, pero no para despejar el permiso ...

Ejemplo ... Seleccionar desplegable: - Seleccione - Admin - Miembro - Invitado

Si se selecciona Admin, seleccione Nunca aparece .... ¿Cómo puedo hacer aparecer una opción para permitir que el usuario elimine la configuración?

¿Alguna idea? THX

Respuesta

15

Creo que desee:

<%= f.collection_select(:role_id, roles, :id, :name, {:include_blank => 'Please Select'} %> 

Véase el FormOptionsHelper docs para más información

1
<% roles = Role.all %> 
<%= f.collection_select :role_id, roles, :id, :name, :prompt => (@user.admin? ? true : false) %> 

te ayuda eso?

Usted debe tener una manera de comprobar si un usuario es admin/No .. utilizar esa condición en la operación ternaria para establecer el valor de: pronta ..

déjame saber cómo va :)