relación a 3 donde pongo los has_many?

en este caso que sale en muchos tutoriales

  • usuarios
  • post
    -comentarios

la relación seria “podría” ser
usario
has_many :post

post
belongs_to :usuario
has_many :comentarios

comentario
belongs_to :post

y si la relación es así
usuario
has_many :post
has_many :cometarios

post
has_many :comentarios
belongs_to :usuario

comentario
belongs_to :post
belongs_to :usuario

¿cual de las dos es la forma correcta de relacionarlas?

Gracias por sus opiniones
Un saludo

la verdad, yo creo que en este caso, no se trata de cual es más
correcta, sino del enfoque que tú quieras darle.
con el primer caso, estarías diciendo que los comentarios solo están
relacionados directamnete con el post, y para acceder a los de un
usuario tendrías que hacerlo a traves de sus posts, con algo como
usuario.posts.find(2).comentarios
Con el segundo caso, tendrías una relación directa con ambas clases, así
que podrías hacer
usuario.comentarios
ó como en el primer ejemplo.
Es decir, ambas soluciones creo que te servirían, pero según mi
criterio, utilizaría la 1ª de ellas, ya que los comentarios a quien
pertenecen son al post, no al usuario, así que no tiene porque haber una
relación directa entre ellos.
Espero te sirva de ayuda.
El jue, 17-04-2008 a las 13:12 +0200, alarkspur escribió:

Hola,

Mi pequeño aporte. Creo que la gran diferencia entre ambos enfoques es
que la segunda te obliga a que cada comentario sea de un usuario que
está registrado, y el primero te permitiría usuarios anónimos.

Sergio
La Serena
Chile.

fernando.martinezgil escribió:

El 17/04/2008, a las 13:21, fernando.martinezgil
escribió:

pertenecen son al post, no al usuario, así que no tiene porque
haber una
relación directa entre ellos.

Muchas gracias por sus opiniones, aun asi le veo un fallo a la
primera opción, que pasaría si un usuario no escribe posts, que solo
escribe comentarios, que ocurre? en ese caso no valdría la primera
opción ¿no?

De todas formas llegados a este punto lo mejor va a ser probar ambas
opciones y comparar.

Muchas gracias.
Saludos.

2008/4/17 alarkspur [email protected]:

El 17/04/2008, a las 13:21, fernando.martinezgil escribió:

Muchas gracias por sus opiniones, aun asi le veo un fallo a la
primera opción, que pasaría si un usuario no escribe posts, que solo
escribe comentarios, que ocurre? en ese caso no valdría la primera
opción ¿no?

Creo que tu planteamiento inicial se puede reducir a: ¿Deben los
usuarios ser capaces de ver sus propios comentarios en algún lugar
diferente a los posts?

Si quieres tener esto necesitas relacionar las comentarios con los
usuarios. Por otro lado, si quieres usar el modelo común entre los
blogs y sitios así, relaciona cada comentario con un post y olvidate
del usuario que lo escribio.

Creo que lo hemos entendido de distinta manera, tal y como yo lo veo en
principio, no estamos guardando ninguna información de los usuarios que
hacen comentarios, en todo caso, según la segunda opción, los
comentarios pertenecerían directamente al usuario que ha escrito el
post, lo cual no tiene mucho sentido.
En cualquier caso, yo me quedaría con la primera.
El jue, 17-04-2008 a las 09:08 -0400, listas.sguamanb escribió:

Creo que tu planteamiento inicial se puede reducir a: ¿Deben los
usuarios ser capaces de ver sus propios comentarios en algún lugar
diferente a los posts?

Ok, ahora si esta claro :slight_smile: Muchas gracias Federico.
Un saludo.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs