How can I specify the selected value in collection_select wh

Hi all,
I have a relatively simple scenario. I have a form that can have a
list of multiple phone objects in it. I’m trying to get the edit and
entry screens to work with unique field names. I have entry and
record creation working, but I’m still working on edit. Is it
possible for me to specify the value of the selected index to the
“collection_select” method via an option or html option? I read the
doc, but I can’t find what I’m looking for. Below is my code, as you
can see my field and select names are “phone_#” where # is the
iteration index, but the actual variable is “phone”.

Main form snippet

n = 0
for phone in @phones do
fieldname = "phone_#{n}";
<tr><td>Number:</td><td> <%= text_field_tag fieldname, phone.number%></
td> <td><%= get_phone_types fieldname%></td></tr>
n += 1

helper with get_phone_types

  #Create a Phone type select List
  #Take a list of html options
  def get_phone_types(fieldname)
    @phones = PhoneType.find(:all, :order => "description ASC");
    #TODO, how to assign the value from
    collection_select(fieldname, "phone_type_id",
@phones, :id, :description);

Also, is it possible for me to call the PhoneType.find and save the
resulting array “@phones” for the life of the request across multiple
method calls? I’m assuming I just need to make @phones an instance
variable, but I’m new to ROR, and I’m unsure of the best practices for
caching domain data for selects.


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