Has/Belongs Relationships for Address Book

I am new to RoR, so I will apologize in advance. However, I am
creating an mapping system with the Google API. So I have a model
called Routes and a model called Locations. These are related in the
fact that Routes have a start and end Location. Yet, I can't determine
the relationship to use. So...

Idea 1: HABTM relationship, and adding a column to the join table for
start/end. But that "feels wrong".
Idea 2: Add options on a has_one relationship to map it accordingly.
Idea 3: Something I haven't thought of...

I don't know. Again, I'm new. Any direction would be appreciated.

Thanks,
Jason

I am new to RoR, so I will apologize in advance. However, I am
creating an mapping system with the Google API. So I have a model
called Routes and a model called Locations. These are related in the
fact that Routes have a start and end Location. Yet, I can't determine
the relationship to use. So...

Sounds to me like a route would have two belongs_to, one for the start
and one for the end. Another way (which may or may not be relevant)
would be for routes to has_many locations through waypoints: the join
table would have a column specifying the order and would define the
locations through which the route passes (of which start and end are
just special cases)

Fred

I understand what you are suggesting. However, which way is "better"
practice? Should I use the two relationships, or one with a join table
that contains the extra column.

Can anyone provide a more specific solution..

I am new to rails, but very old in databases:

If a route has two and will never have more than two nor less than
two, you have to create two relationships, one called begin and other
called end. Else, you have to create a table HABTM, where one route
describes the full stack of relationships (with some kind of
sorted-by).

Regards,

Cool. Again, this is what I figured. If I go the two relationships in
routes, what type of relationship is this... belongs_to?

So I would write something like the following:

class Route
  belongs_to :start, :class_name => 'Location', :foreign_key =>
"start_location"
  belongs_to :end, :class_name => 'Location', :foreign_key =>
"end_location"
...

??