Usando inherited_resources para anidados, comentarios polimórficos
-
29-09-2019 - |
Pregunta
Soy nuevo en el uso de los recursos heredados y quiero usarlo para comentarios anidados polimórficos. Tengo varios objetos que serán commentable (artículos, galerías, etc.) y los comentarios también pueden ser anidado. Estoy usando una combinación de awesome_nested_set (parent_id, LFT, RGT) con mi modelo de comentario a tener commentable polimórfica columnas.
El controlador necesita recibir una petición AJAX (sólo) para el crear acción y llevar a cabo como a continuación:
Publicación / artículos / 12 / comentarios / 34 Crea un comentario con commentable igual a @ article (12) y el padre igual a @comment (34)
/ artículos / 12 / comentarios / 34
Publicación / Galería / 12 / comentarios / 34 crea un comentario con commentable igual a @gallery (12) y el padre iguales a @comment (34)
Estoy un poco atascado en dónde empezar. Es este un caso de uso bueno para recursos heredados?
class CommentsController < InheritedResources::Base
respond_to :js, :only => :create
belongs_to :article, :cheat, :gallery, :video, :polymorphic => true
do
belongs_to :comments
end
def create
create! do |format|
# How in here do I build a comment so that it handles
polymorphism?
@comment.children.create(:commentable => @article or @cheat or
@something_generic?)
end
end
end
Solución
comentarios anidados son difíciles. Carriles recursos no proporcionan, de paso, un id a la acción de crear, así que no creo que se pueda correctamente POST a la acción de crear de esta manera. Es posible que necesite para añadir comentarios a las opciones belong_to, para que pueda publicar a / comentarios / 33 / comentarios . No sé si InheritedResources apoyan esto. Si lo hace, la creación de objetos debe ser automática. Puede hacer referencia a cosas como parent_url también.