Help with Create and Update with options_for_select in a sel

I have a select_tag in my view that uses options_for_select with
multiple = true. I am having trouble figuring out the Rails way to
create and update that field. Please help.


Service has_many AccessControl
AccessControl belongs_to Service


$types = Array[“Athens”, “htpasswd”, “IP”, “None”, “Other”,
“Password”, “Shibboleth”]


<% if @service.access_controls
@types = @service.access_controls.collect{|a| a.value}.join(’ ')
end %>
span>Access Control:
<%=select_tag ‘access_control[]’,
options_for_select($types, ‘@types’), {:multiple => true, :size
=> 5, :id => “access_control_value”,
:onfocus=>“fixedtooltip(CONTROL_MSSG, this, event,
‘’)”, :onblur=>“delayhidetip()”}%>
<%= error_message_on :service, :access_controls %>


#create works but is this the best way?
def create

if params[:access_control]
params[:access_control].each do |value|
control =
control.value = value
control.service_id =
@service.access_controls << control


def update
??? I have no idea how to update the access_controls fields

Thanks in advance, K

Hey Kim, what you can do:


<% for party in @parties %> <%= %> <% end %>

The Rails Way:

select( “party”, “id”, Party.find(:all).collect {|p| [, ]
}, { :multiple => true, :size => 3 } )

Good luck,


Hi Conrad,
Thanks, but no, that will not work.

select( “party”, “id”, Party.find(:all).collect {|p| [, ]}, { :multiple => true, :size => 3 } )

select can not do a multiple select. Yes you can put :multiple => true
in it, and in the UI it will look like it is multi-selecting things,
but it actual does not send more then one thing in the params hash.
Disagree? Prove me wrong.

I have seen plenty of code examples for doing this when the options
are coming from a database (just like your example), but if you look
at my post, you will see that I do not have that case. I have a hash
of static options, not options from a database.

Thanks anyways.

Any other ideas? K

I have not been able to find any examples. Anyone know how to do this?