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.

Models:

Service has_many AccessControl
AccessControl belongs_to Service

application.rb

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

View:

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

Controller

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

if params[:access_control]
params[:access_control].each do |value|
control = AccessControl.new
control.value = value
control.service_id = @service.id
control.save
@service.access_controls << control
end
end

end

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

Thanks in advance, K

Hey Kim, what you can do:

HTML:

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

The Rails Way:

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

Good luck,

-Conrad

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

First:
select( “party”, “id”, Party.find(:all).collect {|p| [ p.name,
p.id ]}, { :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.

Second:
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?