Innocent wrote:

> > Then rails is expecting the venue_id field to be present in the
> > address table. It seems illogical to setup the relationship with the
> > "belongs_to :address" tag in the Venue model, as a Venue does not
> > belong to an address, it has an address.
> 
> I think you're mixing the object model with the DB schema.  Yes--in
> object modeling, if a venue has an address, you'd expect the Venue class
> to have a pointer to an Address.  However, in relational DB schemas,
> it's the child table (address) that should have a foreign key
> to the parent table (venue)'s primary key.  
>
> This becomes more clear if you think about how to represent one-to-many 
> relationships.  Remember, a column in a table should contain only one value.  
> You may have many rows in a table, but each column in a row should
> have only one value.  

First, it isn't a one-to-many relationship. Each venue can only ever be associated to a single address record. However, that address may be shared amongst multiple entities (each of which can only ever be linked to one address).

I would have thought that this would be a common scenario that shouldn't be that hard to model in Rails. 

--