Utilisation de generic_resources pour les commentaires imbriqués et polymorphes
-
29-09-2019 - |
Question
Je suis novice en matière d’utilisation des ressources héritées et je souhaite les utiliser pour Commentaires imbriqués polymorphes.J’ai plusieurs objets qui seront commentables (articles, galeries, etc.) et les commentaires peuvent également être imbriqué.J’utilise une combinaison de awesome_nested_set (parent_id, lft, rgt) avec mon modèle de commentaire ayant polymorphe commentable colonnes.
Le contrôleur a besoin de recevoir une requête AJAX (uniquement) pour la création l’action et effectuer comme ci-dessous :
Publier sur /articles/12/commentaires/34 crée un commentaire avec commentable égal à @article (12) et parent égal à @comment (34)
/articles/12/commentaires/34
Publier sur /galerie/12/commentaires/34 crée un commentaire avec commentable égal à @gallery (12) et parent égal à @comment (34)
Je ne sais pas trop par où commencer.S’agit-il d’un bon cas d’utilisation pour ressources héritées ?
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
La solution
Les commentaires imbriqués sont difficiles.Les ressources Rails ne fournissent pas d'identifiant à l'action de création, donc je ne pense pas que vous puissiez correctement POST à l'action de création de cette façon.Vous devrez peut-être ajouter un commentaire aux options d'appartenance_to afin de pouvoir publier sur /commentaires/33/commentaires.Je ne sais pas si InheritedResources prend en charge cela.Si c'est le cas, la création d'objet devrait être automatique.Vous pouvez également référencer des éléments comme parent_url.