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í?