Rails associação polimórfica de muitos para muitos

Estou tentando configurar um tipo genérico de teia de objetos relacionados. Digamos que eu tenho 4 modelos.

LivrFilm TagCategori

Gostaria de poder fazer:

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]

Basicamente, quero poder pegar dois objetos de qualquer classe de modelo (ou classe de modelo que eu permito) e declarar que eles estão relacionado

Obviamente, não quero criar uma enorme confusão de tabelas de junção. Parece que não é uma associação de muitos e nem uma associação polimórfic

sso é algo que o Rails pode suportar por meio de declarações de associação ou devo usar minha própria lógica aqu

questionAnswers(8)

yourAnswerToTheQuestion