views:

46

answers:

2

I'm building a form to allow a user to CRUD a project permission.

....

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

Problems with the above, while it renders:

  1. If a value matches, it shows that in the dropdown as selected, which is good. Problem, is if a user is set as ADMIN. It's easy to use the dropdown to change the permission to something else, but not to CLEAR the permission...

Example... Select Drop Down: - Please Select - Admin - Member - Guest

If Admin is selected, Please Select never shows up.... How can I make an option show up to allow the user to remove the setting?

Any ideas? thx

+1  A: 

I believe you want:

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

See the FormOptionsHelper docs for more information

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

does that help you?

you must be having a way to check if a user is admin / not.. use that condition in ternary operation to set the value of :prompt..

lemme know how it goes :)

Sourcebits