One to one, but only with one table per record

I have a ‘descriptions’ table which has_one of lots of other tables.
The other tables all belong to a description. But I only want each
description to have one record from any of the tables. So a
description can’t have a room and photo. There has to be one
description for each room, and one description for each photo. Any
idea if there’s a reasonably easy way to enforce this in my model?

You can use polymorphism to make this work.

However, I have to ask, what is special about a description table that
you couldn’t just put it in the room or photo table? It’d be a lot more
efficient in terms of database access, and just make a whole lot more
sense in general.

Thanks, I’ll look into rails polymorphism.

I did have it with description fields in each table (in my first draft
of the table schema), but there’s a lot more to it than I’ve
described, and it would take a lot of effort to explain everything.
You’ll just have to trust me when I say that my reasoning is sound,
and it wouldn’t have worked the other way.


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