En config/routes.rb:¿Alguien tiene alguna sugerencia para administrar recursos anidados polimórficos en Rails 3?
resources :posts do
resources :comments
end
resources :pictures do
resources :comments
end
me gustaría permitir más cosas que hay que comentar también.
Actualmente estoy usando mongoid (mongomapper aún no es compatible con Rails 3 como me gustaría), y los comentarios son un recurso incrustado (mongoid aún no puede manejar recursos relacionales polimórficos), lo que significa que lo hago necesita el recurso padre para encontrar el comentario.
¿Hay alguna manera elegante de manejar algunos de los siguientes problemas:
En mi controlador, necesito encontrar a los padres antes de encontrar el comentario:
if params[:post_id]
parent = Post.find(params[:post_id]
else if params[:picture_id]
parent = Picture.find(params[:picture_id]
end
que va a causar problemas si Comienzo a agregar más cosas para ser commentable.
también url_for([comment.parent, comment])
no funciona, así que voy a tener que definir algo en mi modelo Comment
, pero creo que también voy a tener que definir una ruta de índice en el modelo Comment
así como potencialmente una editar y nueva definición de ruta.
Puede haber más problemas que tengo que tratar a medida que avanzo.
No me puedo imaginar que soy la primera persona que intenta resolver este problema, ¿hay alguna solución para que esto sea más manejable?
En realidad, esto se ve muy bien; con algunos pequeños cambios, acabo de implementar esto, y en su mayor parte parece estar funcionando bien. ¿Dónde está la documentación para el truco de enrutamiento que usaste en la primera parte para que pueda averiguar cómo conectar las rutas de creación, actualización, eliminación e indexación también? – Ryan
Está bien, creo que descubrí lo que estabas haciendo y por qué te parece feo. El comentario básicamente debe ser la última ruta definida porque coincidirá con cualquier cosa. Terminé usando parte de lo que estabas haciendo y parte de lo que estaba haciendo para implementar todo. Realmente aprecio tu ayuda. – Ryan
Ah, bien, lo siento si no estaba claro. Esas rutas salpicadas pueden ser engañosas. – PreciousBodilyFluids