distance form_tag dans rails3 sans une route nommée
quelle est la bonne incantation pour faire de ce post en fait de manière asynchrone?
form_tag :controller => :magic, :action => :search, :method => post, :remote => true do
method=post et à distance=true obtenir écrasé sur la fin de l'url au lieu de réellement faire un ajax post.
OriginalL'auteur Dennis Collective | 2010-08-17
Vous devez vous connecter pour publier un commentaire.
Le seul moyen que j'ai trouvé à faire c'est d'envelopper les paramètres de l'url dans la url_for méthode.
Toutefois, si vous avez besoin de la passer à la
method
paramètre que vous pourriez avoir besoin pour l'envelopper et la distance entre parenthèses.OriginalL'auteur Sean
Voici ce que vous devez:
En son genre d'une mauvaise conception, mais les Rails
form_tag
méthodes nécessitent DEUX hachages - le url_for options de hachage, et des options de hachage. Cela a créé beaucoup de confusion pour de nombreux Rails de programmeurs. Si vous n'ajoutez pas de la délimitation de hachage limites, toutes les options sont passées, afin de url_for(), en ruinant le:remote => true
.Cela va ajouter
data-remote="true"
à votre formulaire (pour être utilisé avec javascript discret, comme d'autres l'ont mentionné). À partir de là, vous devez créer les AJAX pour la liaison à faire la demande.Si, vraiment, vous devriez être en utilisant une route nommée comme
magic_search_path
au lieu du contrôleur/paramètres de l'action.OriginalL'auteur adamlamar
Je crois que vous devez utiliser
form_remote_tag
à la place:Par défaut la méthode http post.
Si vous ne voulez pas passer des paramètres supplémentaires sur un
form_tag
vous avez besoin pour en faire un hachage à partir des paramètres d'url, comme ceci:form_tag
et la:remote => true
paramètre. Rails 3 vise à être discret avec le javascript généré, et la logique de l'envoyer en tant que requête ajax se trouve maintenant dans le côté client avec Javascript pilote de votre choix. Voir railscasts.com/episodes/205-unobtrusive-javascriptOriginalL'auteur Shadwell