2010-12-02 4 views
0

sur ma page, je donne les résultats suivants:Rails - Utilisation de jQuery pour remplir un formulaire

<span id="attach-file" class="link">Attach a file</span> 
    <div id="attach-file-form"> 
</div> 

Donnez que la fixation d'un fichier n'est pas un cas d'utilisation commune, je ne veux pas que les éléments de forme joindre fichier être présent en charge, cela ralentirait tout. Ce que je voudrais arriver, c'est que l'utilisateur clique sur "Joindre un fichier", jQuery AJAX GET pour obtenir le formulaire et l'injecter dans le fichier attach-file.

Quelle est la bonne façon de procéder dans Rails?

dans jQuery J'ai:

$("#attach-file").live("click", function() { 
    DO A GET TO A custom Method in the Attachment Controller 
    Inject inside the div 
}); 

Est-ce que ce droit son?

Répondre

2

Avoir le formulaire de téléchargement de fichier présent sur la page mais caché n'aura pratiquement aucun impact sur les performances de votre site. Je recommanderais juste par défaut le formulaire de téléchargement de fichier à caché, et déclenchant l'affichage du formulaire lorsque votre bouton est cliqué.

Ensuite, votre code JQuery peut être aussi simple que:

$("#attach-file").live("click", function() { 
    $("#file_upload_form").show(); 
}); 

Si vous avez besoin d'obtenir ce à partir du serveur, vous pouvez utiliser la méthode jQuery.get pour faire un appel à un contrôleur Rails, qui peut sortir le formulaire pour vous:

$("#attach-file").live("click", function() { 
    $.get("/controller/action", function(html) { 
    $("#file_upload_form").html(html); 
    } 
}); 
+0

Pourquoi dites-vous 0 performance hit? Le div contiendra uploadify qui est 2 fichiers js et un fichier SWF, avec des images? – AnApprentice

Questions connexes