2010-10-13 16 views
5

Sto costruendo un modulo per consentire a un utente di CRUD un'autorizzazione di progetto.Rails 3 - collection_select - Informazioni su PROMPT?

....

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

Problemi con il sopra, mentre rende:

  1. Se un valore corrisponde, mostra che nel menu a discesa come selezionato, che è buono. Problema, è se un utente è impostato come ADMIN. E 'facile da usare il menu a discesa per modificare l'autorizzazione a qualcos'altro, ma non per cancellare il permesso ...

Esempio ... Seleziona Drop Down: - Seleziona - Admin - Stati - Ospite

Se si seleziona Admin, Seleziona mai si presenta .... Come posso fare una scelta mostrare fino a permettere all'utente di rimuovere l'impostazione?

Qualche idea? thx

risposta

15

Credo che si desidera:

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

Vedere la FormOptionsHelper docs per ulteriori informazioni

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

fa, che vi aiutano a?

Che deve avere un modo per verificare se un utente è admin/no .. utilizzare tale condizione in funzione ternario per impostare il valore di: pronta ..

fammi sapere come va :)