Rails / Rendu partiel AJAX
J'ai fait une application qui a un project
modèle. Le modèle a certaines informations qui y sont stockées, et un utilisateur peut ajouter des commentaires à la project
(à l'aide de la comment
modèle). Dans le diaporama, en vue d'un projet, je veux que l'utilisateur soit en mesure de basculer entre une "info" partielle (contenant les informations sur le projet, et un "commentaire" partielle (contenant les commentaires a écrit sur le projet). Je veux le faire à l'aide d'AJAX. Donc, j'ai deux boutons: Information & Commentaires.
Maintenant, je sais comment rendre une partielle basée sur une "liaison à distance", mais je vais aussi avoir à trouver quel lien a été cliqué. Jusqu'à présent, je peux en rendre un partiel lorsqu'un lien est cliqué comme suit:
//In show.html.haml
= link_to("Information", :project, :id => "link_one", :remote => true)
= link_to("Comments", :project, :id => "link_two", :remote => true)
#partial_window
//In show.js.haml
$("#partial_window").html("#{j(render("comments"))}")
Maintenant, ce qui rend le _comment.html.haml
partielle quand je clique sur un des liens. Ce que j'ai besoin de savoir, c'est comment vérifier qui lien a été cliqué, et ensuite rendre approprié partielle: _info.html.haml
ou _comments.html.haml
.
Merci d'avance pour votre aide!
source d'informationauteur Stefan Hagen | 2012-12-18
Vous devez vous connecter pour publier un commentaire.
Quelque chose comme cela devrait travail. Nous allons utiliser imbriqués les routes. Découvrez ryan screencast (un peu vieux, mais il obtient le point à travers) ou ce plus version mise à jour au sujet des formulaires imbriqués (utilise les mêmes principes). Vous aurez à payer pour la mise à jour de version, mais je trouve mon RailsCast abonnement de plus que la valeur de l'9 $par mois. Aussi, voici les docs pour des exemples.
config/routes.rb
comments_controller.rb
views/comments/index.js.erb
Il utilise une chouette chose de rails qui recherche une
comment
partielle et la rend à la fois pour chaque commentaire@comments
. Le j helper échappe à javascript et à peu près insère le rendu partiel dans leappend
fonction.views/comments/_comment.html.erb
Nous avons donc effacé les
#holdingDiv
et inséré nos commentaires. Pourinformation
peut-être quelque chose comme ceci:projects_controller.rb
views/project/index.js.erb
views/project/_information.html.erb
Ensuite, votre distance de liens serait quelque chose comme:
J'ai dû faire des hypothèses sur ce que vos structures de données ont été. Laissez-moi savoir où je suis confus de vous.
Aussi, j'en suis sûr, j'ai quelques fautes de frappe, désolé pour ça. Je n'ai pas tester cela, il suffit de s'en alla le haut de ma tête.