2010-06-29 5 views
1

Est-ce que quelqu'un sait comment charger un Ruby on Rails partiel dans une boîte de dialogue jquery? Je veux faire quelque chose comme çaCharger la partie Ruby on Rails dans la boîte de dialogue jQuery UI

$('#advancedExerciseSearchLink').click(function() { 
    $('#advancedSearch').load('/path/to/advancedsearchform_partial').dialog('show'); 
} 

je pouvais précharger la partie sur la page parent et juste montrer lorsque le bouton de recherche avancée est cliqué, mais je charger plutôt dynamique parce qu'il maintient la première charge de la page plus légère. J'ai vu quelques suggestions pour utiliser une action de contrôleur personnalisé, mais je voudrais garder mon contrôleur RESTful si possible.

+0

Êtes-vous convaincu que le chargement dynamique du contenu des dialogues en vaut la peine? Regarde ca comme ca. Si le contenu du dialogue est petit, le temps de chargement incrémentiel de la page devrait être insignifiant. Si le contenu est grand alors, si l'utilisateur devait ouvrir et fermer la boîte de dialogue plusieurs fois, vous finiriez par transférer plus de données du serveur à long terme et encourir le retard interactif avec l'utilisateur final – bjg

+0

Ouais, vous êtes probablement droite. J'étais sur un projet précédent qui était une grande application web sur une page avec une tonne de boîtes de dialogue et nous avons dû aller avec le chargement dynamique en raison de la performance et aussi parce que beaucoup de fois les données dans la boîte de dialogue dynamique traitement latéral. – John

Répondre

1

Votre meilleur pari serait de créer un "partials_controller.rb" avec une action "advanced_search_form" avec rien dedans. Ensuite, configurez l'itinéraire, la structure de fichier et les autorisations appropriés.

Il n'y a rien RESTful à propos de cette approche.

OU

Vous pouvez placer ledit fichier quelque part dans le dossier public. (Non recommandé car vous n'aurez aucun contrôle sur les autorisations d'accès.)

Je ne sais pas vraiment d'une autre façon car jQuery ne pourra pas accéder au fichier car le serveur ne saura pas quoi faire avec la demande.

Questions connexes