junction table question

I'm looking into how to implement a relationship between some models,
and I think I need to use a junction table. From the documentation I've
read, a junction table doesn't require a model. But from my controller,
I'm not sure how to get the data I need. Here's a description of my
models and what I need in my controller:

Models
1. Event
2. Site
3. Participant

Relationships:
1. An event can have multiple sites (example video conferencing)
2. A site can have multiple events
3. Participant goes to an event at a location

Database Tables:
1. event_sites (:id, :event_id, :site_id)
2. participants (:id, :event_site_id, ...)

And in my participant controller, I need to get the sites available for
a particular event the participant is signing up for (new action). Any
thoughts on how I can get that data from the junction table, or a better
approach in general? Thanks.

I'm looking into how to implement a relationship between some models,
and I think I need to use a junction table. From the documentation I've
read, a junction table doesn't require a model.

That's in the basic has_and_belongs_to_many relationship. You just provide a table with modela_id and modelb_id in it, and the relationship takes care of the rest.

But from my controller,
I'm not sure how to get the data I need. Here's a description of my
models and what I need in my controller:

Models
1. Event
2. Site
3. Participant

This is a rich relationship, described in the "has_many :through" relationship. This is a full model-backed join object, not the lightweight join table in habtm. You will need a model (although you won't need a separate controller) to get at any of the data stored in this relationship.

Walter

Thanks Walter for your reply. I had thought the two techniques equal
(has_and_belongs_to_many and has_many :through). Thanks for the
insight.