Quiero auto-referentiate un modelo en una aplicación RoR, pero, no sé exactamente cómo. Quiero guardar una lista vinculada donde el siguiente nodo tiene el id del anterior. ¿Cómo puedo hacer esto de esta manera? Es una relación de uno a uno.¿cómo puedo hacer autorreferencia con ruby on rails?
Respuesta
La forma más sencilla:
class MyModel < ActiveRecord::Base
belongs_to :parent, :class_name => 'MyModel'
has_many :children, :class_name => 'MyModel', :foreign_key => 'parent_id'
end
estoy usando los carriles 3 y necesito una sola referencia no muchos, obras has_one? Si es así, estoy haciendo algo mal. – JRafaelM
he pasado algún tiempo tratando de hacer que funcione utilizando rieles 3.2.14
La sugerencia de la documentación para self-joining associations no ha funcionado para belongs_to
asociaciones. Agregar una clave foránea solucionó el problema.
Class User < ActiveRecord::Base
has_many :invitees, class_name: 'User', foreign_key: :invited_by
belongs_to :host, class_name: 'User', foreign_key: :invited_by
end
También puedes ver este tutorial por Ryan Bates en la auto asociación referencial here. La respuesta de Hck funciona, pero para mí, necesito una tabla de unión y por lo que utilizar un has_many través de la asociación de los rieles. ¡Buena suerte!
- 1. link_to con Ruby on Rails
- 2. Antipatterns con Ruby on Rails
- 3. SSL con Ruby on Rails
- 4. cómo manipular DOM con Ruby on Rails
- 5. Ruby vs. Ruby on Rails
- 6. Cómo dominar Ruby on Rails
- 7. Acción de transacción con Ruby On Rails
- 8. integración angularjs con Ruby On Rails Forms
- 9. Ruby on Rails 3 y cómo hacer un servicio web
- 10. Funda/interruptor Ruby on Rails. ¿Cómo hacer coincidir el objeto?
- 11. ¿Cómo puedo hacer que mi aplicación Ruby on Rails 2.3.4 "Rails 3-ready"
- 12. ¿Cómo hacer una solicitud HTTP usando Ruby on Rails?
- 13. ¿Cómo funciona Ruby on Rails?
- 14. Ruby on Rails Switch
- 15. Ruby on Rails will_paginate
- 16. Ruby on Rails enviar
- 17. Diseñando sitios web con Ruby on Rails
- 18. Docsplit Ruby on Rails
- 19. Validación con backbone.js y Ruby on Rails
- 20. Usando Photobucket api con Ruby on Rails
- 21. Almacenamiento de documentos con Ruby On Rails
- 22. ¿Cómo desinstalo una aplicación Ruby on Rails?
- 23. Ruby on Rails: descargable
- 24. ¿Cómo puedo localizar will_paginate en ruby on rails?
- 25. Ruby on Rails link_to Con put Método
- 26. Creación de Enlace con Ruby on Rails
- 27. Usos de Ruby on Rails
- 28. contenido dinámico con ajax (ruby on rails)
- 29. upsert a granel con Ruby on Rails
- 30. Ruby on Rails Rutas con variantes regionales
Creo que empiezas buscando en StackOverflow la "asociación de autoreferenciación [ruby-on-rails]": http://stackoverflow.com/search?q=%5Bruby-on-rails%5D%20self%20referential%20association - ¿Duplicar? :-) – conny
De hecho, me han buscado esto, pero no resuelven mi problema. – JRafaelM