4

Salut, tous. Travailler sur ma première application Rails. J'ai cherché partout - j'ai lu des tas de tutoriels, d'articles et de messages sur le forum, j'ai regardé des screencasts, et j'ai trouvé quelques exemples qui me rappellent ce que j'essaie de faire (notamment http://railscasts.com/episodes/154-polymorphic-association et ep 196 sur les formes de modèles imbriquées), mais pas exactement.Rails - liste de commentaires polymorphes intégrés + ajouter un formulaire de commentaire - exemple?

J'ai deux modèles (Podcast et BlogPost) qui doivent être commentables, et j'ai un modèle de commentaire qui est polymoriquement lié aux deux. Les railscasts ci-dessus avaient un exemple très similaire (ep 154), mais Ryan utilisait un ensemble complet de routes imbriquées, il y avait donc des modèles spécifiques pour ajouter et éditer des commentaires. Ce que je veux faire est de montrer la liste des commentaires directement sur la page Podcast ou BlogPost, avec un formulaire Ajouter un commentaire en bas. Je n'ai pas besoin d'un gabarit/route d'ajout séparé, et je n'ai pas besoin de la possibilité de modifier, seulement de supprimer.

Ceci est une conception assez commun sur le Web, mais je ne trouve pas d'exemple Rails spécifiquement sur ce modèle. Voici ma compréhension actuelle:

J'ai besoin d'itinéraires pour les actions de création et de suppression, bien sûr, mais il n'y a pas de modèles associés à ceux-ci. Je suppose également que la bonne approche est de créer un partiel qui peut être inclus au bas du Podcast et du template de show BlogPost. Le nom logique du partial me semble être quelque chose comme _comments.html.haml. Je sais que c'est une convention courante que l'objet passé au nom partiel soit nommé après le modèle, mais appeler l'objet 'comments' semble ne pas correspondre à mon cas d'utilisation, car ce que je dois vraiment passer, c'est l'objet commentable (Podcast ou BlogPost). Donc, je suppose que j'utiliserais l'option locale pour l'appel partiel de rendu? (: commentable => @podcast). Dans le partiel, je pourrais appeler commentable.comments pour obtenir la collection de commentaires, rendre cela avec un second partiel (cette fois avec le cas d'utilisation conventionnel, en appelant le partiel _comment.html.haml), puis créer un formulaire qui soumet à ... quoi? REST-sage, il devrait être un POST à ​​la collection, qui serait/podcast | blogpost /: id/commentaires, et je pense que l'aide pour cela est podcast_comments_path (podcast) s'il s'agissait d'un podcast - je ne sais pas quoi faire si , puisque j'utilise des commentaires polymorphes. Cela déclencherait l'action Comment.create, qui devrait ensuite rediriger vers le podcast | blogpost chemin/podcast | blogpost /: id.

Tout est un peu écrasant, c'est pourquoi j'espérais vraiment trouver un screencast ou un exemple qui implémente spécifiquement ce design.

+0

Avez-vous des sources montrant ce que vous avez essayé et où il est décomposition? Votre message est plutôt accablant, alors peut-être que voir du code s'avérera utile. – theIV

+0

Désolé, je ne le fais pas, parce que je ne suis pas sûr de savoir comment l'implémenter. Je peux fournir un code de soutien, comme les définitions de modèles et d'itinéraires, si vous pensez que c'est pertinent. De plus, si ce que j'essaie de faire ne ressort pas clairement de la description, je peux essayer de le clarifier mieux ... – odigity

+0

Cela ne devrait pas vraiment inclure la balise intégrée, car il ne s'agit pas de programmer un système embarqué. Je n'ai pas assez de rep pour changer l'étiquette. –

Répondre

Questions connexes