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?

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs