2010-03-16 4 views
1

J'ai l'exigence de fllowing,Comment rafraîchir une page parent #Rails

J'ai appelé un modèle de travail pour afficher les tâches utilisateur

1. Lien pour ajouter une nouvelle tâche (dans la page d'index des tâches)

2. Lorsqu'un utilisateur clique sur le lien, l'action 'Tâches/Nouveau' s'ouvrira dans un menu contextuel

3. Lorsque l'utilisateur enregistre la nouvelle tâche, je veux fermer la fenêtre 'nouvelle tâche' et actualiser la page page mère 'tâches/index' pour que la nouvelle tâche apparaisse

Je suppose, je vais devoir exécuter une page reload java script à la fin de l'action 'tasks/create'. Mais je ne suis pas sûr de savoir comment.

quelqu'un peut me aider à ce faire, grâce à l'avance

acclamations, sameera

Répondre

1

L'action create de votre Contrôleur de tâches redirigera vers la page d'index des tâches normalement afin que la tâche nouvellement créée apparaisse dans la liste. Ajoutez ensuite un gestionnaire d'événements JavaScript onclick au bouton Enregistrer dans la fenêtre contextuelle Nouvelle tâche. Le gestionnaire d'événements doit simplement effectuer un window.close(); pour fermer la fenêtre contextuelle lorsque vous cliquez sur le bouton Enregistrer. Si vous utilisez le cadre du prototype, ce sera quelque chose comme:

$("save").observe("click", function() { 
    window.close(); 
}); 

Vous pouvez également utiliser JavaScript pour piéger la nouvelle soumission de formulaire de tâche (événement onsubmit) et fermer la fenêtre pop-up de cette façon.

0

essayer window.opener.location.reload() dans votre cas, si vous connaissez de la page d'index action, vous pouvez utiliser redirect_to: action => 'index'

+0

salut psjscs, merci pour la réponse. Bt comment puis-je utiliser window.opener.location.reload() dans l'action contrôleur de rails tâches/créer, merci encore – sameera207

Questions connexes