Using select() to relate tables

I’m sorry to be asking trivial questions, but I’m new to RoR and am
hooked :), so I’m very impatient to get things up and running.

given two related tables, “pcs” and “venues” (venues have many PC’s and
each PC belongs to one venue only) I can use a select() to present venue
names in the “new PC” form along with other PC details to be

I’ve done this by adding <%= select(’’, ‘’, venue.find_all.collect
{|venue|}) %>
to my _form.rhtml for registering new PC’s.

Now when you register a new PC, you can choose the venue that it
belongs to by name, but I need to then send the venue_id (the foreign
key in pcs) and not the venue name from the form. Can someone advise
me on how I might do this?

Also, I know that I’m really supposed to write something in the
appropriate controller or write a helper method to populate a variable
which I can then use in my _form.rhtml, but I’m not sure how to do
that and would appreciate pointers there too.


You will most likelt want something like this…

<%= select(“pc”, “venue_id”, Venue.find_all.collect {|v| [,]}

this will create a select with the name as the displayed value, and put
id as the actual value submitted with the form. also by adding pc and
venue_id as the first 2 parameters, the select will automatically select
Venue described by @pc.venue_id. Then you can reuse this for for editing
PC as well.


Brilliant Mark! It worked like a charm. Now I’ve got to do my homework
find out how to abstract as much as possible into a controller or a


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