Désolé, s'il s'agit d'une question noobish, mais je ne fais que commencer avec Rails et jQuery. J'ai le scénario suivant:rails: comment mettre à jour un has_many: via relation via jQuery?
J'ai 3 classes: contacts, entreprises et contact_company_joins (ccj). Pour les trois classes, j'ai créé des modèles, des contrôleurs et des vues. Évidemment, les contacts et les entreprises sont connectés via la table de jointure ccj (en utilisant has_many: through).
contacts < -> contact_company_joins < -> entreprises
Dans mon de contact « show » point de vue je veux afficher un tableau qui répertorie toutes les entreprises que le contact est connecté à (et quelques informations complémentaires sur la société elle-même, par exemple numéro de téléphone). Du point de vue de mon entreprise, je veux faire la même chose, mais cette fois avec les détails des employés (contacts). Chaque ligne de la table a le lien typique « supprimer » à la fin, dont la fonction que je suis maintenant accroché à un de mes fonctions jQuery:
$('.edit_contact_join_delete').livequery('click', function() {
var $deleteButton = $(this);
var answer = confirm("Sure?");
var dataloc = "&_method=delete";
if (answer) {
$.ajax({
type : "POST",
url : this.href,
data : dataloc,
success: function(result) {
}
});
}
return false;
});
Dans les deux vues (contact et entreprise), l'action de suppression me prend à la fonction détruire du contrôleur ccj. Ce que je veux faire maintenant est de mettre à jour ou de rediffuser la table du site individuel (contact ou compagnie) qui appelle la fonction de suppression, mais SEULEMENT la partie de la table. Je suppose que je dois l'implémenter dans la fonction "succès" ci-dessus? Mais encore une fois, même si je retourne quelque chose du contrôleur du ccj (un rendu partiel?) ... ce serait la même chose pour le contact et la vue de l'entreprise, non? Comment puis-je m'assurer qu'après mon appel Ajax pour détruire l'objet ccj, j'obtiens un nouvel objet DOM pour la vue de mon contact (qui serait une nouvelle table de compagnie), mais aussi une nouvelle table de contacts quand je fais l'appel Ajax de mon point de vue d'entreprise?
Hope this prend tout son sens :-)
Cordialement,
Sebastian