Rails asociación polimórfica de muchos a muchos

Estoy intentando configurar un tipo genérico de web de objetos relacionados. Digamos que tengo 4 modelos.

LibrPelículEtiquetCategorí

Me gustaría poder hacer:

book = Book.find(1)
book.relations << Tag.find(2)
book.relations << Category.find(3)
book.relations #=> [Tag#2, Category#3]

movie = Movie.find(4)
movie.relations << book
movie.relations << Tag.find(5)
movie.relations #=> [Book#1, Tag#5]

ásicamente quiero poder tomar 2 objetos de cualquier clase de modelo (o clase de modelo que permita) y declarar que están relacionados.

Obviamente, no quiero crear un gran lío de tablas de unión. Parece que no tiene muchas asociaciones pasadas, y tampoco una asociación polimórfica.

Es esto algo que Rails puede admitir a través de sus declaraciones de asociación o debería desarrollar mi propia lógica aquí?

Respuestas a la pregunta(8)

Su respuesta a la pregunta