ruby on rails - references - Rieles: ¿Cómo funcionan los modelos autorreferenciales? Muchos modelos?
rails join table (1)
Entonces, estoy trabajando en una aplicación en la que deseo que los usuarios puedan agrupar objetos en "carpetas". Básicamente:
User has_many :foos
Los Foos no tienen que estar en una carpeta, pero pueden serlo. En ese caso:
Folder has_many :foos
y Foo belongs_to :folder
Ahora, me gustaría poder configurar carpetas para que puedan anidarse. Creo que esto es algo así como ...
Folder has_many :folders
He oído que este tipo de relación autorreferencial no es gran cosa, pero realmente no entiendo cómo funciona. No he podido averiguar cómo se supone que se debe declarar en el modelo y qué columnas debo proporcionar en la base de datos.
¿Alguien podría ofrecer un ejemplo? También me gustaría valorar cualquier sugerencia / advertencia / advertencias / lecciones aprendidas que pueda ofrecer sobre la configuración de este tipo de relación en una aplicación.
¡Gracias!
Consulte la respuesta de coreyward a la pregunta aquí: Creación de un modelo que tiene una estructura de árbol
Básicamente, desea agregar un campo "parent_id" a su tabla de carpetas y luego establecer una relación en su modelo de carpeta de esta manera:
belongs_to :parent, :class_name => "Folder"
has_many :folders, :foreign_key => "parent_id"