Creando una relación de muchos a muchos en Rails

Este es un ejemplo simplificado de lo que estoy tratando de lograr, soy relativamente nuevo en Rails y estoy luchando por entender las relaciones entre modelos.

Tengo dos modelos, elUser model y @Category modelo. Un usuario puede asociarse con muchas categorías. Una categoría particular puede aparecer en la lista de categorías para muchos usuarios. Si se elimina una categoría en particular, esto debería reflejarse en la lista de categorías para un usuario.

En este ejemplo

MiCategoriesa tabla @ contiene cinco categorías:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| ID | Name                       |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| 1  | Sports                     | 
| 2  | News                       |
| 3  | Entertainment              |
| 4  | Technology                 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

MiUsers table contiene dos usuarios:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| ID | Name                       |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| 1  | UserA                      | 
| 2  | UserB                      |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

UserA puede elegir Deportes y Tecnología como sus categorías

UserB puede elegir Noticias, Deportes y Entretenimiento

La categoría deportiva se elimina, las listas de categorías UsuarioA y UsuarioB reflejan la eliminación

He jugado con la creación de unaUserCategories table que contiene los identificadores de una categoría y un usuario. Este tipo de trabajo funcionó, pude buscar los nombres de las categorías, pero no pude lograr que funcionara una eliminación en cascada y toda la solución parecía incorrecta.

Los ejemplos de uso de las funciones belong_to y has_many que he encontrado parecen discutir el mapeo de una relación uno a uno. Por ejemplo, comentarios en una publicación de blog.

¿Cómo representa esta relación de muchos a muchos utilizando la funcionalidad integrada de Rails? ¿Está usando una tabla separada entre los dos una solución viable al usar Rails?

Respuestas a la pregunta(2)

Su respuesta a la pregunta